my @twice = do { my %tracker; foreach my $a_ref (\@a1, \@a2, \@a3) { foreach my $a_value (@$a_ref) { $tracker{$a_value}{$a_ref} = undef; } } grep {2 == keys %{$tracker{$_}}} keys %tracker; };