2013/11/19 Denis Ibaev <[email protected]>

> Привет.
>
> > 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()?
>
>
Видимо, keys и пр. автовивифицируют $v:

perl -Mstrict -E 'my $v; say "keys: ", keys %$v; say "v: ", $v'
keys:
v: HASH(0x96bde8)



> 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
>



-- 
Best regards,
Ilya Chesnokov
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить