sub transpose { map { my $i = $_; [ map $_->[ $i ], @_ ] } 0 .. $#{ $_[0] } } my @array1 = qw /ab bc cd de/; my @array2 = qw /cc dd ee gg/; my @array3 = qw /12 34 56 78/; print "@$_\n" for transpose \( @array1, @array2, @array3 ); __END__ ab cc 12 bc dd 34 cd ee 56 de gg 78