my %seen; for ( my $i = @arr; $i--; ){ splice @arr, $i, 1 if $seen{$arr[$i]}++; }