use Data::Dumper; my $x; if (exists $x->{a}->{c}) { print "c exists\n"; } else { print "c doesn't exists\n"; } print Dumper($x); __END__ c doesn't exist $VAR1 = { 'a' => {} };