Vraceni odkazu v perlu
Pavel Šmerk
xsmerk na informatics.muni.cz
Úterý Březen 20 08:55:06 MET 2001
Zdravim,
asi neco nechapu. Ve velbloudi knize je psano, ze my deklaruje promenne
pouze pro nejvnitrnejsi uzavirajici blok. Nejak se mi nepodarilo najit,
jak funguje vraceni odkazu na takto deklarovane privatni promenne v
podprogramech. Nevim proc, ale myslel jsem si, ze bych v takovem pripade
vracel odkaz na neco, co mi behem navratu prestane existovat.
Nasledujici prikaz nicmene vypise jednicku
perl -e 'sub a {my $a = 1; return \$a} my $a = a; print $$a'
potreboval bych vedet, jestli muzu spolehat na to, ze vraceny odkaz
pujde vzdy dereferencovat na puvodni hodnotu privatni promenne, nebo
jestli napriklad misto \@pole je lepsi vracet [@pole] atd. (vzdy
samozrejme za predpokladu my @pole).
Diky
P.
P.S. Vsechno, co jsem zkousel, nasvedcuje tomu, ze lze takto vracet
odkazy a pujdou vzdy rozumne dereferencovat. V takovem pripade by me
zajimalo, jak dlouho perl 'chrani' obsahy promennych deklarovanych
pomoci my - jestli je to treba jako v unixu se soubory, ze by se pamet
uvolnila, az by se na ni nikdo neodkazoval.
Další informace o konferenci Perl