my %seen_in_1; $seen_in_1{$_}++ for @rray1; my @in_2_but_not_1 = grep { not $seen_in_1{$_} } @rray2;