use mapcar; my @matrix = ( [ qw(ab cd ef gh)], [ qw(ij kl mn op)], [ qw(qr st uv wx)] ); my @transposed = mapcar {[@_]} @matrix; print join( " ", @$_), $/ for @transposed; __END__ ab ij qr cd kl st ef mn uv gh op wx