perl -MData::Dumper -E 'my $r=[map { id=>$_ }, ("a".."c","b")]; say Dumper $r; my %h; my @z= map {$h{$_->{id}}++ ?():$_ } @$r; say Dumper \@z' #### $VAR1 = [ { 'id' => 'a' }, { 'id' => 'b' }, { 'id' => 'c' }, { 'id' => 'b' } ]; $VAR1 = [ { 'id' => 'a' }, { 'id' => 'b' }, { 'id' => 'c' } ];