Perl a velky skalar
Pavel ©merk
xsmerk na informatics.muni.cz
Pátek Duben 6 16:23:00 MEST 2001
Honza Pazdziora wrote:
> On Thu, Apr 05, 2001 at 10:05:38AM +0200, Pavel ©merk wrote:
> > Pavel ©merk wrote:
> >
> > > Honza Pazdziora wrote:
> > >
> > > > Potrebujeme videt presny kod.
> > >
> > > anxur-pts/101$ cat a.pl
> > > #!/usr/bin/perl -w
> > > $_ = ' ' x 1000 x 1000;
> >
> > Resenim (jednim z, TIMTOWTDI ;-) by mohlo byt
> >
> > eval 's/( ) ( ) /$2 $1 /sg';
> >
> > Presto by me velmi zajimalo, proc obycejne nahrazeni tolik zvetsuje zabiranou pamet
> > (tedy hlavne to, ze se to kumuluje a neuvolnuje) a pripadne jak by se dalo nastavit,
> > aby se tak nedelo a clovek nemusel pouzivat eval.
>
> Nemuze to byt tim, ze tam nejak prezivaji ty globalni $2, $1
> z posledniho matche?
Praveze zrejme nejen z posledniho (delka $_ se nemeni, ale zabrana pamet roste). Krome $1,
$2 ... to mozna budou i nejake ty $` a $'. Ale nechapu, proc tam zustavaji i po vice
nahrazenich (pristupne stejne nejsou).
> Co kdyz se ty jednotlive substituce obali do bloku ({})?
Nic, zkousel jsem do {s///sg}, foreach my $pom (1..1) {s///sg}, &{sub {s///sg}}, sub a
{s///sg} a; a vsechno se chovalo v podtate stejne, jenom ten eval se choval rozumne.
> Jinak nejak nejsem na Solarisu ty Tvoje parametry ps spustit, abych
> zaexperimentoval.
Ten prvni priklad byl z anxura (to je Solaris, ne?) a mne fungoval, neumim ty parametry
napsat nejak OS independent, pripadne si to asi nejak uprav :)
P.
Daląí informace o konferenci Perl