use Data::Dumper; %hoh = ( 'item1' => { 'key1' => '1', 'key2' => '1', 'key3' => '0' }, 'item2' => { 'key1' => '0', 'key2' => '1' } ); print "Before delete:\n"; print Dumper \%hoh; my $a = "item2"; delete $hoh{$a}; print "\n\nAfter delete:\n"; print Dumper \%hoh; print "$a deleted!" if not exists $hoh{$a}; #### Before delete: $VAR1 = { 'item1' => { 'key2' => '1', 'key1' => '1', 'key3' => '0' }, 'item2' => { 'key2' => '1', 'key1' => '0' } }; After delete: $VAR1 = { 'item1' => { 'key2' => '1', 'key1' => '1', 'key3' => '0' } }; item2 deleted!