my %a = map {( uc($_) => $_ )} @a; my %b = map {( uc($_) => $_ )} @b; my @common_keys = grep { exists $a{$_} } keys %b; my @a_values_seen_in_b = @a{ @common_keys }; my @b_values_seen_in_a = @b{ @common_keys };