行列転置
これより短い方法はあるのだろうか?
$ perl -MData::Dumper -MList::Util -e ' $foo = +[+[11,12],+[21,22,23],+[31],+[41,42]]; print Dumper($foo); $bar=+[]; for $i (0..List::Util::max(map{$#$_}@$foo)){ push @$bar , +[ map {$_->[$i]} @$foo ] }; print Dumper($bar); ' $VAR1 = [ [ 11, 12 ], [ 21, 22, 23 ], [ 31 ], [ 41, 42 ] ]; $VAR1 = [ [ 11, 21, 31, 41 ], [ 12, 22, undef, 42 ], [ undef, 23, undef, undef ] ];