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";