[Moscow.pm] keys() и разыменование undef

Denis Ibaev dionys на gmail.com
Вт Ноя 19 02:28:09 PST 2013


>> Почему разыменование переменной со значением 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