http://www.perlmonks.org?node_id=193529


in reply to removing duplicated elements from array, with a difference

This is probably not the most efficient way to do this but it will work. This uses a hash to keep track of the duplicates.
my %hash; my @NewArray; #read all of the values of the array into keys of the hash, #this eliminates all of the duplicates foreach my $var (@OriginalArray) { $hash{$var}=0; } #this loop marks any variable that appeared twice in the #original array. foreach my $var2 (@OriginalArray) { $hash{$var}++; } #This fills a new array based on the information from the #above loop foreach my $var3 (keys (%hash)) { if (!$hash{$var3} > 1) { print "$hash{$var3} deleted\n"; } else { $NewArray[@NewArray]=$hash{$var3}; } } @OriginalArray = @NewArray;
update ++dpuu and thelenm for their much better and more efficient answers to this question.