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

George_Sherston has asked for the wisdom of the Perl Monks concerning the following question:

How can I extract just the unique elements of an array? is very helpful if that's what I want to do. But I need a list of all the elements that are *not* unique. And I need each element in this output list to be, itself, unique, even if it occurs more than twice in the input list. And to make matters worse, I need to do this in a for loop where I do other operations on the input list, so that shifting off one element after another is not an option. What I have at present is
my @in = qw/ test foo test bar baz foo test /; my %multiples; my %out; for (@in) { if ($multiples{$_} == 1) { $out{$_} = 1; } $multiples{$_} = 1; } print "$_\n" for keys %out;
This does what I want, but seems clunky. Is there a cute idiom for this operation?

George Sherston