my %seen; my @intersection = grep ++$seen{$_}==2, @list1, @list2;