[Moscow.pm] Неопределённое значение, но не undef

Denis Ibaev dionys на gmail.com
Ср Дек 25 16:31:59 PST 2013


Привет.

Вот такой код

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