http://qs1969.pair.com?node_id=71897

Richard has asked for the wisdom of the Perl Monks concerning the following question:

Should exists() add elements to the hash it queries? It seems to in this script:
#!/usr/bin/perl # test perl script # check behavior of "exists" # reported to activestate as bug 1747 4/11/01 %test_hash = () ; $key1 = 'x' ; $key2 = 'y' ; if ( exists $test_hash{$key1} ) { print "The key exists\n" ; } else { print "The key does not exist\n" ; } if ( exists $test_hash{$key1}{$key2} ) { print "The double key exists\n" ; } else { print "The double key does not exist\n" ; } if ( exists $test_hash{$key1} ) { print "The key exists now\n" ; } else { print "The key still does not exist\n" ; } # end of script ---------------------------
The result I get is:
The key does not exist The double key does not exist The key exists now
I tried this on ActiveState build 620 and Sun OS version 5.000. Is this a bug or do I just not understand?