Во втором случае передается 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
