J'ai juste commencé avec Perl et je veux écrire mon propre script pour scanner un document et convertir le fichier TIFF résultant en un fichier PDF. Si la conversion réussit (en utilisant tiff2pdf
), je veux imprimer "Terminé" à la fin de la ligne, mais je n'arrive pas à trouver un indice pour le faire sur le Web. Je suppose que je dois obtenir la géométrie du terminal et compter les lettres que j'ai déjà imprimées, mais cela semble être compliqué. Avez-vous des conseils?Comment puis-je imprimer "Terminé" ou "Échec" à la fin de la ligne sur stdout en Perl?
1
A
Répondre
3
Vous avez raison d'inspecter la taille du terminal sur lequel vous imprimez. Il y a plusieurs façons de le faire, mais le moyen le plus portable et le plus fiable que je connaisse est Term::Size::Any
.
Avec cela, vous pouvez obtenir la largeur du terminal que vous utilisez dans:
use Term::Size::Any;
my $cols = chars *STDOUT{IO};
Avec cela, vous pouvez imprimer ce que vous voulez, rembourré avec la bonne quantité d'espaces, par exemple:
printf "% ${cols}s", "Done\n";
Sachez également que les programmes ne sont pas toujours transmis aux terminaux. La sortie peut, par exemple, être redirigée vers un fichier, vous pouvez donc avoir besoin d'une solution de repli appropriée si la taille du terminal échoue.
Questions connexes
- 1. Comment imprimer l'utilisation du programme en Perl?
- 2. ou bash - ajouter "au début de la ligne et", à la fin de la ligne
- 3. Comment imprimer la ligne en java
- 4. Fin de la ligne sur Windows cmd
- 5. Comment imprimer sur la ligne en cours dans une application de ligne de commande?
- 6. incrémenter un entier à la fin d'une chaîne en Perl
- 7. TextMate cliquez sur la fin de la ligne
- 8. Comment imprimer la ligne après la ligne trouvée dans re.compile()
- 9. bash stdout suivi de l'invite sur la même ligne
- 10. L'utilisation de Perl pour déplacer des virgules de fin de ligne début de la ligne
- 11. ifstream, fin de ligne et passer à la ligne suivante?
- 12. Rediriger STDOUT d'un tuyau en Perl
- 13. Comment éviter d'imprimer sur STDOUT en utilisant `IPC :: System :: Simple: runx` de Perl?
- 14. Ajouter à la fin de la ligne avec sed
- 15. Rester sur le MPMoviePlayerController après la fin de la lecture
- 16. Comment puis-je capturer le groupe de chiffres à la fin d'une chaîne en Perl?
- 17. La ligne stdout est-elle mise en mémoire tampon, non tamponnée ou indéterminée par défaut?
- 18. Comment ajouter à la fin de la ligne en utilisant VSVIM
- 19. Regex: limite de mot, mais pour l'espace blanc, début de la ligne ou à la fin de la ligne ne
- 20. Comment puis-je capturer la sortie de pkgrm en Perl?
- 21. Perl: remplacer le motif de la position actuelle jusqu'à la fin d'une ligne
- 22. PERL + correspond exactement à la ligne
- 23. Comment puis-je faire correspondre une tabulation à la fin de la ligne avec une regex Perl?
- 24. Question sur le hachage Trier et imprimer en Perl
- 25. Échec du déploiement SharePoint avec VS2008 sur la ligne COMANnd
- 26. Que signifie un {à la fin d'un doublage Perl?
- 27. Échec de la reconnexion de la socket
- 28. Comment imprimer les cartes réseau Ethernet disponibles en Perl?
- 29. Comment remplacer les caractères juste à la fin d'une chaîne en Perl?
- 30. Comment afficher la ligne suivante avant que l'animain soit terminé
Générez-vous la source PDF sur stdout ou sur un fichier nommé? Avez-vous essayé simplement 'imprimer" Terminé \ n ";'? Pouvez-vous expliquer plus ce que vous essayez de faire et ce que vous obtenez à la place? – aschepler
Voulez-vous dire la fin de la ligne ou sur le côté de la fenêtre du terminal? Ceux-ci signifient des choses différentes. –