http://www.perlmonks.org?node_id=1014315


in reply to Column wise entry in text table

The code you provided is just the sample code for Text::Table. What have you tried?

You will need to transpose the table before you submit it to Text::Table. Something like this: my @transpose = transpose(@matrix); where @matrix is your array to transpose.

sub transpose { my @array = @_; my $max_j = max map $#$_, @array; my @trans; for my $i (0 .. $#array) { for my $j (0 .. $max_j) { $trans[$j][$i] = $array[$i][$j]; } } return @trans; }
This requires the function 'max' from List::Util.

Update: The transpose function above will not enter '0' in the array if it is in the data. It should be correct now.

I'm not sure whether it is right to set a max_j as it is so, here it is without that detail.

sub transpose { my @array = @_; my @trans; for my $i (0 .. $#array) { for my $j (0 .. $#{$array[$i]}) { $trans[$j][$i] = $array[$i][$j]; } } return @trans; }