c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my @orig = qw( abcde fghij klmno pqrst uvwxy ); ;; my @transposed; for (map $_ = reverse, @orig) { my $i = 0; $transposed[ $i ++ ] .= chop while $_; } dd \@transposed; dd \@orig; " ["afkpu", "bglqv", "chmrw", "dinsx", "ejoty"] ["edcba", "jihgf", "onmlk", "tsrqp", "yxwvu"]