for( @original ){ my $i = 0; $transposed[ $i ++ ] .= $_ for split //; } for( map $_ = reverse, @original ){ my $i = 0; $transposed[ $i ++ ] .= chop while $_; }