[Moscow.pm] Почему код так работает?
Denis Evdokimov
evdokimov.denis на gmail.com
Пт Май 30 09:16:14 PDT 2008
#! /usr/bin/perl
use strict;
use warnings;
my $test = 0;
warn 'main: ', \$test, ' ', $test;
my $func1 = sub {
$test .= 1;
warn 'func1: ', \$test, ' ', $test;
sub func2 {
$test .= 2;
warn 'func2: ', \$test, ' ', $test;
}
};
$func1->();
func2();
$func1->();
func2();
$func1->();
func2();
func2();
func2();
func2();
warn $test;
##################
main: SCALAR(0x182f478) 0 at 2.pl line 6.
func1: SCALAR(0x182f478) 01 at 2.pl line 10.
func2: SCALAR(0x18545b4) 2 at 2.pl line 13.
func1: SCALAR(0x182f478) 011 at 2.pl line 10.
func2: SCALAR(0x18545c0) 22 at 2.pl line 13.
func1: SCALAR(0x182f478) 0111 at 2.pl line 10.
func2: SCALAR(0x18545b4) 222 at 2.pl line 13.
func2: SCALAR(0x18545c0) 2222 at 2.pl line 13.
func2: SCALAR(0x18545b4) 22222 at 2.pl line 13.
func2: SCALAR(0x18545c0) 222222 at 2.pl line 13.
0111 at 2.pl line 26.
Что говорит нам о том, что $test в func2 никак не связана с $test во всей
остальной программе
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: http://mail.pm.org/pipermail/moscow-pm/attachments/20080530/c9991928/attachment-0001.html
Подробная информация о списке рассылки Moscow-pm