<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><a href="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</a><div><br></div><div><a href="http://stackoverflow.com/questions/6419618/perl-vivification-question-while-dereferencing-undefined-array-reference"></a><a href="http://stackoverflow.com/questions/2206836/why-does-perl-autovivify-in-this-case">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"></a>stackoverflow наш друг :)</div><div><br></div><div><br><div><div>On Sep 30, 2011, at 5:38 PM, Иван Бессарабов wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Ок. А почему в списочном контексте происходит инициализация ссылки?<br><br>30 сентября 2011 г. 17:32 пользователь Анатолий Шарифулин<br><<a href="mailto:sharifulin@gmail.com">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">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">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">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">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">andy@shitov.ru</a> | <a href="http://shitov.ru">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">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">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">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">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">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">http://moscow.pm.org</a><br></div></blockquote></div><br></div></body></html>