use Algorithm::Loops qw( MapCarE ); my @one = qw( A B C D ); my @two = qw( E F G H ); my @tre = qw( W X Y Z ); #### my @mda = MapCarE { [@_] } \( @one, @two, @tre ); #### require Data::Dumper; print Data::Dumper->new([\@mda],['@mda']) ->Indent(1)->Terse(1)->Dump(); #### [ [ 'A', 'E', 'W' ], [ 'B', 'F', 'X' ], [ 'C', 'G', 'Y' ], [ 'D', 'H', 'Z' ] ]