my @newarray = grep { hcmp( \%goodhash, $_ ) } @somebadhashes; #### sub hcmp { use Digest::MD5 qw{ md5_hex }; use Data::Dumper; my ($a, $b) = @_; my $astr = md5_hex( Dumper( $a ) ); my $bstr = md5_hex( Dumper( $b ) ); return ($astr eq $bstr) ? 1 : 0; }