Я хочу отобразить таблицу в perl, имена строк и столбцов которой будут иметь переменную длину. Я хочу, чтобы столбцы были аккуратно выровнены. Проблема в том, что заголовки строк и столбцов имеют переменную длину, поэтому выравнивание для разных файлов сдвигается.
Вот код, который я использую для форматирования:
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";
}
Выводы, которые я получаю, следующие (для разных файлов, с которыми я должен тестировать):
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
Я хочу выровнять этот вывод независимо от имени строки и столбца. Может кто-нибудь, пожалуйста, помогите?
Большое спасибо!