in reply to Re^4: Keys() required to autovivify?
in thread Keys() required to autovivify?
i.e. I expect $h{x} to hold a hash
That's the clue - you expect that, but it isn't. You look at the box, and you are dereferencing that undef value explicitly as a hash. If you access keys/values of an undef value, your dereference happens implicitly and the hashref is created (autovivification):
use strict; my $f; $f->{foo} = 'bar'; # okay my ($h, %new); %new = %$h; # not okay
Said otherwise, if you dereference something, you state that it is a reference, which is different to autovivication of an undef value into something.
Clearer?
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: Keys() required to autovivify?
by jrw (Monk) on Dec 30, 2007 at 23:39 UTC | |
by shmem (Chancellor) on Dec 31, 2007 at 12:43 UTC |