my @keys = grep { $hash{$_} eq $value } keys %hash; #### #!/usr/bin/perl use Data::Dumper; use strict; my @AoH = ( { page => 'spring' }, { page => 'winter' }, { page => 'fall' }, { page => 'summer' }, { page => 'spring' } ); my @allvalues; for my $i ( 0 .. $#AoH ) { push ( @allvalues, $AoH[$i]{ page } ); } my %seen; my @duplicates = grep { $seen{$_} ++ } @allvalues; for ( @duplicates ) { for my $i ( 0 .. $#AoH ) { if ( $AoH[$i]{ page } eq $_ ){ delete $AoH[$i]{ page }; splice @AoH,$i,1; last; } } } print Dumper (@AoH);