use strict;
use warnings;
use Data::Dumper;

for(1..10) {
        my $t = 'abcd' if 0;
        print Dumper $t;
        $t = 'def';
}

В Втр, 14/04/2009 в 16:39 +0400, Eugene Kosov пишет:
> Где фокус?
> Замени 'undef' на что-нить другое, чтоб не смущало.

Пожалуйста.

Фокус в том, что
1) my $t = 'abcd' if 0; НЕ выполняет всю строку (начиная с my). Тогда
use strict должен бы ругнуться на $t='def';, но он молчит
2) my $t = 'abcd' if 0; выполняет my $t, но не выполняет присваивание
='abcd'. Тогда должно бы дампиться $VAR1 = undef;

А оно работает как-то по-другому, непонятно для меня.

-- 
With best regards,
  Alexander Q                         mailto:[email protected]

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить