VAR1 = {A => { LEVEL1 => { LEVEL1_2 => { LEVEL1_2_3 => { VAL > 'somevalue' } } } } I am using a if statment with defined in a loop, for (my i = 0; i< 3; i++) { if (defined $hash->{A}->{LEVEL2}->{LEVEL2_2) { # do something } elsif (defined $hash->{A}->{LEVEL1}->{LEVEL1_2) { #do something } }