[Moscow.pm] Интератор инициализирует ссылку на массив/хеш

Иван Бессарабов ivan на bessarabov.ru
Пт Сен 30 06:36:51 PDT 2011


Вот мне и не понятно, почему $t1 станет другим после foreach =)

30 сентября 2011 г. 17:26 пользователь Andrew Shitov <andy на shitov.ru> написал:
> Потому что $t1 станет другим после foreach, а $t2 не станет :-)
>
> $ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for
> (@$t) {}; print Dumper($t);'
> $VAR1 = undef;
> $VAR1 = [];
>
>
> 2011/9/30 Иван Бессарабов <ivan на bessarabov.ru>:
>> Я не могу понять из-за чего происходит такое поведение.
>> Покажите, пожалуйста, кусок доки где объянено, почему так.
>>
>>
>> #!/usr/bin/perl
>>
>> use strict;
>> use warnings;
>> use 5.010;
>> use Data::Dumper;
>>
>> my ($t1, $t2);
>>
>> foreach (@$t1) {} # почему-то не вызывает ошибку
>> say Dumper $t1;
>>
>> say '' if @$t2; # вызывает ошибку, как и ожидалось
>>
>> say 'end';
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
>
> --
> Andrew Shitov
> ______________________________________________________________________
> andy на shitov.ru | http://shitov.ru
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>


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