Je veux afficher une table en perl, dont les lignes et les noms de colonnes seront de longueur variable. Je veux que les colonnes soient parfaitement alignées. Le problème est que les en-têtes de ligne et de colonne ont une longueur variable, donc l'alignement se décale pour différents fichiers.perl print formating question
Voici le code que je utilise au format:
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";
}
Les sorties que je reçois sont les suivantes (pour les fichiers différents que je dois tester sur):
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
Je veux rendre cette sortie alignée indépendamment du nom de la ligne et de la colonne. quelqu'un peut-il aider s'il vous plait?
Merci beaucoup!
Regardez (http://search.cpan.org/~dconway/Perl6-Form-0.04/Form.pm) [Perl6 :: Formulaire], ou déconseillé (dans Perl Best Practices) Perl [form] (http://perldoc.perl.org/perlform.html) mécanisme. Fait intéressant, Perl6 :: Form n'est pas répertorié dans CPAN sous Perl6; Je ne suis pas sûr de la signification de cela. –
Vous pouvez utiliser la fonction formline sans utiliser de déclaration de format, comme la fonction swrite dans la page perlform, mais en localisant $^A – MkV
@Jonathan: Ne dites pas aux gens que les choses sont dépréciées sauf si elles sont contrôlées par le lexical 'deprecated' catégorie d'avertissements! En particulier, * S'IL VOUS PLAÎT * NE PAS utiliser * Perl Best Practices * pour matraquer les gens dans l'homogénéité et la sottise. Ce n'est pas ce que le livre a été écrit pour! Damian Conway dit lui-même: "Tant de gens oublient que PBP était - en son cœur - un plaidoyer pour que le code soit écrit dans un style cohérent, consciemment et rationnellement choisi pour répondre à ses propres besoins." ** – tchrist