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