私は以下のような構造を持っています。Perl:複雑なハッシュから表形式に出力するフォーマット
my %hash = (
'P' => {
'4' => [
'1/4/1 2',
'1/4/1 3'
],
'2' => [
'1/2/1 1',
'1/2/5 4'
]
},
'Q' => {
'4' => [
'1/4/1 3'
],
'3' => [
'1/3/1 1'
],
'5' => [
'1/5/1 1'
]
},
);
私はそれを好きなようにフォーマットします。
Node 2 3 4 5
P 1/2/1 1 1/4/1 2
P 1/2/5 4 1/4/1 3
Q 1/3/1 1 1/4/1 3 1/5/1 1
私は現在それを試みています。最後に、私はそれを優れたものにする必要があります。私はこれのようなものはいくつかの微調整で動作するかもしれないと思います。
my %seen;
my @headers = sort { $a <=> $b } grep {!$seen{$_}++} map{ keys %{$hash{$_}} }keys %hash;
print "node", ' ' x 30, join(" " x 10, @headers),"\n";
foreach my $node (keys %hash) {
my @values;
foreach my $num (keys %{$hash{$node}}) {
foreach my $klm (@{$hash{$node}{$num}}) {
push (@values,$klm);
}
}
foreach my $i (0 .. $#values) {
print "$node $values[$i]\n";
}
}
さらなる提案があります。
出力は画面用ですが、CSVリーダー用ではありませんか? – simbabque
@simbabque最後に、私はそれをExcelに入れる必要があります。 –
サンプル出力は完了していますか? – simbabque