
Jasmine
Administrator
Jan 19, 2001, 3:32 PM
Post #1 of 1
(1223 views)
|
|
Why does passing a subroutine an undefined element
|
Can't Post
|
|
(From the Perl FAQ) Why does passing a subroutine an undefined element in a hash create it? 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.
|