in reply to switch columns and rows

One more solution won't hurt anyone.
sub transpose { my @t; for (my $i; $i<@_; $i++) { for (my $j; $j<@{$_[$i]}; $j++) { $t[$j][$i] = $_[$i][$j] } } wantarray ? @t : \@t } my @matrix = ( [1, 2, 3, 4], [5, 6, 7, 8] ); my @transposed = transpose (@matrix);