my @p = (1,1,1,1,1,2,2,2,3,3,4,5,6); my @q = (1,2,3,4,5,6 ); # my @p = (43, 43, 44); # my @q = (43, 43); my %q; $q{$_}++ for @q; my @r = grep { --$q{$_} < 0; } @p; print join (',', @r), "\n";