У меня аналогично.
В справке написано
Can't use an undefined value as %s reference
(F) A value used as either a hard reference or a symbolic reference must
be a defined value. This helps to delurk some insidious errors.
Хотя в справке по keys:
Starting with Perl 5.14, keys can take a scalar EXPR, which must contain a
reference to an unblessed hash or array. The argument will be dereferenced
automatically. This aspect of keys is considered highly experimental. The
exact behaviour may change in a future version of Perl.
Другими словами это экспериментальная фича.
Denis Ibaev <[email protected]> писал(а) в своём письме Tue, 19 Nov 2013
10:56:05 +0200:
Привет.
perl -E 'use strictures; my $v; say(%$v);'
Can't use an undefined value as a HASH reference at -e line 1.
perl -E 'use strictures; my $v; say(keys(%$v), "ok");'
ok
Почему разыменование переменной со значением undef в хеш не вызывает
ошибки с случае keys() и values()?
perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for
x86_64-linux-gnu-thread-multi
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org