my $Hash = {
"A" => ["HYU"],
"B" => ["TU6"],
"C" => [ "11", "09", "88", "2" ],
"D" => [ "01", "11" ]
};
####
A, B, C, D
HYU TU6 11 01
09 11
88
2
####
use warnings;
use strict;
my $Hash = {
"A" => ["HYU"],
"B" => ["TU6"],
"C" => [ "11", "09", "88", "2" ],
"D" => [ "01", "11" ]
};
# get headiing
print join( ",\t" => sort keys %$Hash ), $/;
# get the value with the highest numbers of element
my $highest_item = 0;
foreach ( keys %{$Hash} ) {
my $value = scalar @{ $Hash->{$_} };
$highest_item = $value if $highest_item < $value;
}
# re-write the data given as AoA, with data needed
my @final_data;
foreach my $key ( sort keys %{$Hash} ) {
push @final_data =>
[ map { $Hash->{$key}[$_] || qq[] } 0 .. ( $highest_item - 1 ) ];
}
# print out in expected output
foreach my $pos ( 0 .. $#final_data ) {
foreach ( 0 .. $highest_item - 1 ) {
print $final_data[$_][$pos], "\t";
}
print $/;
}