my $A = [ [ "bj", 100, 101, 102 ], [ "sh", 200, 201, 202 ], [ "gz", 300, 301, 302 ] ]; my $B = [ map { my $i = $_; [ map $_->[$i], @$A ] } 0 .. $#{ $A->[0] } ];