in reply to Re: Comparing arrays and returning number of similar elements
in thread Comparing arrays and returning number of similar elements

Close. You need to count each array separately so that you can distinguish something appearing twice in one array from something that appears once in each array.
my @arr1 = qw(one one two three four four four); my @arr2 = qw(two four four five five); my %hash ; ++$hash{$_}[0] for @arr1; ++$hash{$_}[1] for @arr2; for (keys %hash) { # Print the smaller count printf "$_ appears %d times in both arrays\n", $hash{$_}[0] < $hash{$_}[1] ? $hash{$_}[0] : $hash{$_}[1] if $hash{$_}[1] and $hash{$_}[0]; }

Caution: Contents may have been coded under pressure.