Да про lvalue хорошо<br><div><br>@$t2 = (1,2,3);  # нет ошибки</div><div><br></div><div><br></div><br><div class="gmail_quote">On Fri, Sep 30, 2011 at 4:42 PM, Dmitry Karpich <span dir="ltr"><<a href="mailto:meettya@gmail.com">meettya@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word"><div class="im"><a href="http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference" target="_blank">http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference</a><div>
<br></div></div><div><a href="http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference" target="_blank"></a><a href="http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case" target="_blank">http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case</a></div>
<div><br></div><div><a href="http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case" target="_blank"></a>stackoverflow наш друг :)</div><div><div></div><div class="h5"><div><br></div><div><br><div>
<div>On Sep 30, 2011, at 5:38 PM, Иван Бессарабов wrote:</div><br><blockquote type="cite"><div>Ок. А почему в списочном контексте происходит инициализация ссылки?<br><br>30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин<br>
<<a href="mailto:sharifulin@gmail.com" target="_blank">sharifulin@gmail.com</a>> написал:<br><blockquote type="cite">Потому что разный контекст.<br></blockquote><blockquote type="cite">foreach (scalar @$t1) {}<br></blockquote>
<blockquote type="cite">Вот так будет идентично ифу.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">2011/9/30 Andrew Shitov <<a href="mailto:andy@shitov.ru" target="_blank">andy@shitov.ru</a>><br>
</blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Потому что $t1 станет другим после foreach, а $t2 не станет :-)<br></blockquote></blockquote>
<blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">$ perl -E'use strict; use Data::Dumper; my $t; print Dumper($t); for<br></blockquote></blockquote>
<blockquote type="cite"><blockquote type="cite">(@$t) {}; print Dumper($t);'<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">$VAR1 = undef;<br></blockquote></blockquote><blockquote type="cite">
<blockquote type="cite">$VAR1 = [];<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote>
<blockquote type="cite"><blockquote type="cite">2011/9/30 Иван Бессарабов <<a href="mailto:ivan@bessarabov.ru" target="_blank">ivan@bessarabov.ru</a>>:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
<blockquote type="cite">Я не могу понять из-за чего происходит такое поведение.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Покажите, пожалуйста, кусок доки где объянено, почему так.<br>
</blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">#!/usr/bin/perl<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
<blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">use strict;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
<blockquote type="cite">use warnings;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">use 5.010;<br></blockquote></blockquote></blockquote><blockquote type="cite">
<blockquote type="cite"><blockquote type="cite">use Data::Dumper;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote>
<blockquote type="cite"><blockquote type="cite"><blockquote type="cite">my ($t1, $t2);<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote>
</blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">foreach (@$t1) {} # почему-то не вызывает ошибку<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
<blockquote type="cite">say Dumper $t1;<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite">
<blockquote type="cite"><blockquote type="cite">say '' if @$t2; # вызывает ошибку, как и ожидалось<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">say 'end';<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
<blockquote type="cite">--<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Moscow.pm mailing list<br></blockquote></blockquote></blockquote><blockquote type="cite">
<blockquote type="cite"><blockquote type="cite"><a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br></blockquote></blockquote>
</blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite">
<blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">--<br></blockquote></blockquote><blockquote type="cite">
<blockquote type="cite">Andrew Shitov<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">______________________________________________________________________<br></blockquote></blockquote><blockquote type="cite">
<blockquote type="cite"><a href="mailto:andy@shitov.ru" target="_blank">andy@shitov.ru</a> | <a href="http://shitov.ru" target="_blank">http://shitov.ru</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
--<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Moscow.pm mailing list<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">--<br></blockquote><blockquote type="cite">С уважением,<br>
</blockquote><blockquote type="cite"> Анатолий Шарифулин.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">--<br></blockquote><blockquote type="cite">Moscow.pm mailing list<br></blockquote>
<blockquote type="cite"><a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br></blockquote><blockquote type="cite"><br></blockquote>
<blockquote type="cite"><br></blockquote>-- <br>Moscow.pm mailing list<br><a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div></blockquote></div><br></div></div></div></div><br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Alexander<br>