>> Почему разыменование переменной со значением undef в хеш не вызывает >> ошибки с случае keys() и values()? > > Видимо, keys и пр. автовивифицируют $v: > > perl -Mstrict -E 'my $v; say "keys: ", keys %$v; say "v: ", $v' > keys: > v: HASH(0x96bde8)
Но это нигде не описано, похоже. Как правильно заметил Андрей Фёдоров, нижеследующий текст не об этом случае: 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. -- Денис Ибаев -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
