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

Анатолий Шарифулин sharifulin на gmail.com
Пт Сен 30 06:32:50 PDT 2011


Потому что разный контекст.

foreach (scalar @$t1) {}

Вот так будет идентично ифу.



2011/9/30 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
>



-- 
С уважением,
 Анатолий Шарифулин.
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110930/0deec1c5/attachment-0001.html>


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