use warnings; use strict; use Data::Compare; use Data::Dumper; my $arefs = [ [ { BIRTH => "11/04/2014", CODE => 4, NAME => "JOHN D.", NUMBER => 1234, }, ], [ { BIRTH => "11/04/2014", CODE => 4, NAME => "JOHN D.", NUMBER => 1234, }, ], [ { BIRTH => "11/04/2014", CODE => 4, NAME => "Mike D", NUMBER => 5555, }, ], ]; my $no_dups_aref; while (my $aref = shift @$arefs){ my $dup = 0; for (@$arefs){ $dup = Compare($aref, $_); last if $dup; } next if $dup; push @$no_dups_aref, $aref; } print Dumper @$no_dups_aref; #### use warnings; use strict; use Data::Compare; use Data::Dumper; my $hrefs = [ { BIRTH => "11/04/2014", CODE => 4, NAME => "JOHN D.", NUMBER => 1234, }, { BIRTH => "11/04/2014", CODE => 4, NAME => "JOHN D.", NUMBER => 1234, }, { BIRTH => "11/04/2014", CODE => 4, NAME => "Mike D", NUMBER => 5555, }, ]; my $no_dups_aref; while (my $href = shift @$hrefs){ my $dup = 0; for (@$hrefs){ $dup = Compare($href, $_); last if $dup; } next if $dup; push @$no_dups_aref, $href; } print Dumper @$no_dups_aref;