use strict; sub dec($) { $_[0] ? $_[0]-- : 0 }; my @a1 = qw(1 2 2 3); my @a2 = qw(1 2 3 3); my %a1; $a1{$_}++ for (@a1); my @only_a2 = map { dec $a1{$_} ? () : $_ } @a2; print "Only in \@a2 : @only_a2\n";