Vraceni odkazu v perlu

Bohdan Spes spes na infotrans.sk
Úterý Březen 20 10:51:33 MET 2001


Ja napriklad tomu aj tak nerozumiem, vysvetlite mi to z pohladu kompilatora.
Skusil som :
perl -e 'sub a {my $a = 1; return \$a} my $a = a; print $$a'
vrati 1
perl -e 'sub a {my $a = 1; return $a} my $a = a; print $a'
vrati 1

Takze druhy pripad:
na stek sa ulozi nazov fcie a, jej navratova hodnota(kam zapisat), potom sa tam
vlozi $a z tela fcie, to sa potom vyberie a zapise na navratove miesto fcie a a
da sa to do $a vonkajsieho a vypise sa. (tak nejak ci nie ?)
Prvy pripad:
na stek sa ulozi nazov fcie a, jej navratova hodnota(kam zapisat),potom sa tam
vlozi $a z tela fcie, to sa potom vyberie a na navratove miesto fcie sa zapise
odkaz na premnnu $a z tela fcie (lenze ta predsa us je prec (neexistuje)) a do
vonkajsieho $a sa priradi tato referencia a potom sa dereferencovana vypise.

Takze kde su vlastne ulozene tie hodnoty na ktore ukazuju referencie ? Niekde v
heape ? To asi cele nie je tak jednoduche, ked sa nevie ani velkost navratovej
hodnoty. Musi sa to poriadne lisit ot standardneho ceckoveho kompilatorskeho
pohladu.
-- 
            v
Mgr. Bohdan Spes, Infotrans s.r.o., Dubravska cesta 9, 842 20 Bratislava 
Tel:07/5941 2950 Email: spes na infotrans.sk, spes na pobox.sk
ICQ#:56233611


Další informace o konferenci Perl