Я хочу отобразить таблицу в perl, имена строк и столбцов, для которых будет переменной длины. Я хочу, чтобы столбцы были аккуратно выровнены. Проблема заключается в том, что заголовок строки и столбца имеет переменную длину, поэтому выравнивание смещается для разных файлов.perl print formatting вопрос
Вот код, я использую формат:
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
Я хочу выведите этот вывод независимо от имени строки и столбца. Кто-нибудь может помочь?
Большое спасибо!
Посмотрите на [Perl6 :: Форма] (http://search.cpan.org/~dconway/Perl6-Form-0.04/Form.pm), или устаревший (в Perl Best Practices) Perl [form] (http://perldoc.perl.org/perlform.html) механизм. Интересно, что Perl6 :: Form не указан в CPAN под Perl6; Я не уверен в значении этого. – 2010-11-23 04:05:50
Вы можете использовать функцию formline без использования объявления формата, например, функции swrite на странице perlform, но локализации $^A – MkV 2010-11-23 09:27:16
@Jonathan: Пожалуйста, не говорите людям, что вещи устарели, если только это не контролируется «устаревшим» лексическим категория предупреждений! В частности, * ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙТЕ * Perl Best Practices *, чтобы превратить людей в однородность и глупость. Это не то, о чем писала книга! Сам Дамиан Конвей говорит: «Так много людей забывают, что PBP был - в его сердце - призывом к коду, который должен быть написан любым * последовательным стилем, сознательно и рационально выбранным для удовлетворения своих собственных потребностей». ** – tchrist 2010-11-23 16:17:20