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

Alexander Onokhov ccnweb на gmail.com
Пт Сен 30 06:45:11 PDT 2011


Да про lvalue хорошо

@$t2 = (1,2,3);  # нет ошибки



On Fri, Sep 30, 2011 at 4:42 PM, Dmitry Karpich <meettya на gmail.com> wrote:

>
> http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference
>
>
> <http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference>
> http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case
>
>
> <http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case>stackoverflow
> наш друг :)
>
>
> On Sep 30, 2011, at 5:38 PM, Иван Бессарабов wrote:
>
> Ок. А почему в списочном контексте происходит инициализация ссылки?
>
> 30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин
> <sharifulin на gmail.com> написал:
>
> Потому что разный контекст.
>
> 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
>
>
>
>
> --
>
> С уважением,
>
>  Анатолий Шарифулин.
>
>
> --
>
> Moscow.pm mailing list
>
> moscow-pm на pm.org | http://moscow.pm.org
>
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>


-- 
Alexander
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110930/22dce381/attachment.html>


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