my @array1 = (1, 3, 4, 6); my @array2 = (1, 2, 4, 6); my @array3 = (1, 2, 3, 5); tie my %seen, 'Tie::IxHash'; for (0..$#array1) { my @v = sort ( $array1[$_], $array2[$_], $array3[$_] ); @seen{ @v } = 1; } print join ' ', keys %seen;