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

Ответить