in reply to Compare Lists (Non Unique Intersection)

Another way to do it since davido implemented my first idea:

use warnings; use strict; my @array1 = qw( test test1 test test2 test2 test ); my @array2 = qw( test1 test2 test2 ); my @result; @array1 = sort @array1; @array2 = sort @array2; while (@array1 && @array2) { if ($array1[0] lt $array2[0]) { shift @array1; } elsif ($array2[0] lt $array1[0]) { shift @array2; } else { push @result, shift @array1; shift @array2; } } print join "\n", @result;

Prints:

test1 test2 test2

DWIM is Perl's answer to Gödel