テーブルをperlで表示したいのですが、行と列の名前は可変長になります。私は列をきれいに整列させたい。問題は、行と列の見出しが可変長であるため、異なるファイルの配置がずれてしまうことです。perl印刷書式設定の質問
Microsoft IBM
------------------------------------------------------------
Microsoft 896 120
IBM 66 661
SERVE12 SERVE2 SERVE6 SERVE10
------------------------------------------------------------
SERVE12 319 32 19 8
SERVE2 44 159 39 25
SERVE6 22 9 102 1
SERVE10 14 16 12 494
HARD3 HARD2 HARD1
------------------------------------------------------------
HARD3 68 7 27
HARD2 6 60 90
HARD1 37 69 937
私がしたい:私は(私がテストする必要が異なるファイルのために)次のとおりであり得る出力
print "\n ";
foreach (keys(%senseToSenseCountHash))
{
printf "%15s",$_;
}
print "\n";
print "------------------------------------------------------------\n";
my $space = "---";
foreach my $realSense (keys(%actualSenseToWronglyDisambiguatedSense))
{
printf "%s",$realSense;
foreach (keys(%senseToSenseCountHash))
{
if(exists($actualSenseToWronglyDisambiguatedSense{$realSense}[0]{$_}))
{
printf "%15s",$actualSenseToWronglyDisambiguatedSense{$realSense}[0]{$_};
}
else
{
printf "%15s",$space;
}
}
print "\n";
}
:ここ
は、私はフォーマットに使用していたコードです行と列の名前にかかわらず、この出力を整列させます。誰でも助けてくれますか?ありがとうございます!
ルックで[Perl6の::フォーム](http://search.cpan.org/~dconway/Perl6-Form-0.04/Form.pm)、またはdeprecated( 'Perlベストプラクティス')Perl [form](http://perldoc.perl.org/perlform.html)の仕組み。興味深いことに、Perl6 :: FormはCPANのPerl6には載っていません。私はそれの重要性については分かりません。 –
フォームの宣言を使わずに、perlformページのスワート機能を使わずに、$^Aをローカライズすることができます。 – MkV
@Jonathan: 'deprecated'レキシカルで制御されていない限り、警告カテゴリ!特に、* Perlのベストプラクティス*を使って、人々を同質性と愚かさに陥らせないようにしてください。それは本のために書かれたものではありません! Damian Conway自身が言っているように、** "多くの人々は、PBPがその心臓部であることを忘れています。 - 自分のニーズを満たすために意識的かつ合理的に選択されたコードを書くことを嘆願します。** – tchrist