[Moscow.pm] Почему код так работает?

Игорь Гердлер igor на gerdler.ru
Пт Май 30 08:47:09 PDT 2008


Denis Evdokimov wrote:
> Кстати, ОН ЕЁ НЕ ВИДИТ
Денис, он видит :о)

#! /usr/bin/perl
use strict;
use warnings;

my $test = 10;
warn 'main: ', \$test, ' ', $test;

my $func1 = sub {
	warn 'func1: ', \$test, ' ', $test;
	$test = 20;
	sub func2 {
		warn 'func2: ', \$test, ' ', $test;
		$test = 30;
	}
};

$func1->();
func2();
$func1->();
func2();
$func1->();
func2();
func2();
func2();
func2();

main: SCALAR(0x804eb30) 10 at ../../test.pl line 6.
func1: SCALAR(0x804eb30) 10 at ../../test.pl line 9.
func2: SCALAR(0x809c098)  at ../../test.pl line 12.
func1: SCALAR(0x804eb30) 20 at ../../test.pl line 9.
func2: SCALAR(0x809c074) 30 at ../../test.pl line 12.
func1: SCALAR(0x804eb30) 20 at ../../test.pl line 9.
func2: SCALAR(0x809c098) 30 at ../../test.pl line 12.
func2: SCALAR(0x809c074) 30 at ../../test.pl line 12.
func2: SCALAR(0x809c098) 30 at ../../test.pl line 12.
func2: SCALAR(0x809c074) 30 at ../../test.pl line 12.

С уважением, Игорь Гердлер (ginnie)


Подробная информация о списке рассылки Moscow-pm