[Moscow.pm] Почему код так работает?
Dmitry E. Oboukhov
unera на debian.org
Пт Май 30 10:44:41 PDT 2008
> Уважаемые коллеги!
> При обсуждении темы с объявлением именованных функций внутри других
> написал пример:
> use strict;
> use warnings;
> my $test = 10;
> warn 'main: ', \$test;
> my $func1 = sub {
> warn 'func1: ', \$test;
> sub func2 {
> warn 'func2: ', \$test;
> }
> };
> $func1->();
> func2();
> func2();
> func2();
> func2();
> func2();
> func2();
> Код выдает результат, который я не могу объяснить
> main: SCALAR(0x804eb30) at ../../test.pl line 5.
> func1: SCALAR(0x804eb30) at ../../test.pl line 8.
> func2: SCALAR(0x809c0d4) at ../../test.pl line 10.
> func2: SCALAR(0x809c0e0) at ../../test.pl line 10.
> func2: SCALAR(0x809c0d4) at ../../test.pl line 10.
> func2: SCALAR(0x809c0e0) at ../../test.pl line 10.
> func2: SCALAR(0x809c0d4) at ../../test.pl line 10.
> func2: SCALAR(0x809c0e0) at ../../test.pl line 10.
> Может кто-нибудь объяснить, почему код так работает?
я не пойму а что не так-то?
он та и должен работать
Подробная информация о списке рассылки Moscow-pm