[Moscow.pm] Фокусы с постфиксным if

Alexander Q qalex на ashmanov.com
Вт Апр 14 05:44:22 PDT 2009


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:qalex на ashmanov.com



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