lvalue, присваивание которому автовивифицирует элемент хеша в обоих случаях передаётся.
2013/12/26 Анатолий Гришаев <[email protected]> > > > Во втором случае передается lvalue, при обращении к нему и вылетает второе > предупреждение. > Можно закомментировать строчку с $val и посмотреть. > А значение одно и тоже undef. > > Анатолий Гришаев. > > 26.12.2013, 4:32:27 пользователь Denis Ibaev ([email protected]) написал: >> >> >> Привет. >> >> Вот такой код >> >> sub foo { my ($val) = @_; } >> my %bar; >> my $undef; >> >> foo($bar{undef}); >> foo($bar{$undef}); >> >> выдаст на втором вызове функции foo() предупреждения >> >> >> Use of uninitialized value $undef in hash element >> Use of uninitialized value within @_ in list assignment >> >> При этом в первом вызове массив @_ будет содержать один элемент со >> значением undef, точнее алиас для $bar{"undef"}. Во втором же так же >> будет один элемент и как будто undef, но, судя по предупреждению, не >> совсем он. Похоже, что алиас на неопределённый элемент %bar. В чём же >> >> разница этих вызовов и для чего? >> >> -- >> Денис Ибаев >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org >> >> >> -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Alexander
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
