use Math::Matrix; # ... yadda yadda my $matrix = Math::Matrix->new(@array); my $rows = [ map {{ cells => [ map {{ data => $_ }} @$_ ] }} @{$matrix->transpose} ];