use Test::More qw/no_plan/; is_deeply( \%h1, \%h2, "h1 vs h2" ); __END__ not ok 1 - h1 vs h2 # Failed test 'h1 vs h2' # in /tmp/h at line 10. # Structures begin differing at: # $got->{e} = Does not exist # $expected->{e} = '5' 1..1 # Looks like you failed 1 test of 1.