Current Perl documentation can be found at perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
If you say something like:
somefunc($hash{"nonesuch key here"});
Then that element ``autovivifies''; that is, it springs into existence whether you store something there or not. That's because functions get scalars passed in by reference. If
somefunc()
modifies
$_[0]
, it has to be ready to write it back into the caller's version.
This has been fixed as of perl5.004.
Normally, merely accessing a key's value for a nonexistent key does not cause that key to be forever there. This is different than awk's behavior.