in reply to Re: hash surprise
in thread hash surprise

You left out the best part from the doc ;-)

"This surprising autovivification in what does not at first--or even second--glance appear to be an lvalue context may be fixed in a future release." (empasis added)

I think the hash key gets a value of "", can't see how that is good...

Most of my hashes are balanced. By that I mean that I always fill all branches, but don't always define a leaf.

So, this example seems to be a work around...at least for my purpose:

use strict; my $self = {}; my $f1 = "aaa"; my $f2 = "bbb"; my $f3 = "CCC"; my $val = "val1"; # Create another valid branch $self->{$f1}{$f2}{DDD} = 'val2'; # Looking to test for: $self->{$f1}{$f2}{$f3} = val1 # But DON'T want to create anything if it isn't created print "pre count = ".%$self."\n"; print "found\n" if (defined $self->{$f1} && defined $self->{$f1}{$f2} + && defined $self->{$f1}{$f2}{$f3}); print "post count = ".%$self."\n";