1,a
2,b
####
1,2
a,b
####
1,2,3
4,5
####
,1,,4
,2,,5
,3,,
####
sub pivot
{
my (@srcgrid) = @_;
my $max_row = $#srcgrid;
my $max_col = get_max_cols(@srcgrid);
my @pivoted;
for my $col (0..$max_col)
{
my @new_row;
for my $row (0..$max_row)
{
my $value;
if (defined $srcgrid[$row][$col])
{
$value = $srcgrid[$row][$col];
}
else
{
$value = '';
}
push @new_row,$value;
}
push @pivoted,\@new_row;
}
return @pivoted;
}
sub get_max_cols
{
my (@grid) = @_;
my $max= 0;
for my $rowref (@grid)
{
my @row = @$rowref;
if ($max < $#row)
{
$max = $#row;
}
}
return $max;
}