<div dir="ltr">lvalue, присваивание которому автовивифицирует элемент хеша в обоих случаях передаётся.<br><div class="gmail_extra"><br><br><div class="gmail_quote">2013/12/26 Анатолий Гришаев <span dir="ltr"><<a href="mailto:0body0@rambler.ru" target="_blank">0body0@rambler.ru</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
Во втором случае передается lvalue, при обращении к нему и вылетает второе предупреждение.<br>
Можно закомментировать строчку с $val и посмотреть.<br>
А значение одно и тоже undef.<br>
<br>
Анатолий Гришаев.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
26.12.2013, 4:32:27 пользователь Denis Ibaev (<a href="mailto:dionys@gmail.com" target="_blank">dionys@gmail.com</a>) написал:<div class="im"><br>
<br>
Привет.<br>
<br>
Вот такой код<br>
<br>
sub foo { my ($val) = @_; }<br>
my %bar;<br>
my $undef;<br>
<br>
foo($bar{undef});<br>
foo($bar{$undef});<br>
<br></div>
выдаст на втором вызове функции foo() предупреждения<div class="im"><br>
<br>
Use of uninitialized value $undef in hash element<br>
Use of uninitialized value within @_ in list assignment<br>
<br>
При этом в первом вызове массив @_ будет содержать один элемент со<br>
значением undef, точнее алиас для $bar{"undef"}. Во втором же так же<br></div>
будет один элемент и как будто undef, но, судя по предупреждению, не<br>
совсем он. Похоже, что алиас на неопределённый элемент %bar. В чём же<div class="im"><br>
разница этих вызовов и для чего?<br>
<br>
-- <br>
Денис Ибаев<br>
-- <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>
<br>
<br>
</div></blockquote><div class="HOEnZb"><div class="h5">
-- <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></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Alexander
</div></div>