Je voudrais effacer l'écran dans un terminal / console à l'aide de Perl. Comment puis-je faire ça? P>
Ceci est une question de Perlfaq officiel . Nous sommes Importation du perlfaq pour empiler débordement . p>
3 Réponses :
Ceci est le Réponse de FAQ officale moins toutes les modifications ultérieures.
Pour effacer L'écran, il vous suffit d'imprimer la séquence spéciale qui indique au terminal d'effacer l'écran. Une fois que vous avez cette séquence, envoyez-la lorsque vous souhaitez effacer l'écran. P>
Vous pouvez utiliser le TERM :: ANSISCREEN Module pour obtenir la séquence spéciale. Importer la fonction Terme :: Cap Module peut également obtenir la séquence spéciale si vous souhaitez faire face aux détails de bas niveau du contrôle des terminaux. La méthode TPTS renvoie la chaîne pour la capacité donnée: p> sous Windows, vous pouvez utiliser le Win32 :: console module. Après avoir créé un objet pour la charge de sortie, vous souhaitez affecter, appelez la méthode Si vous avez un programme de ligne de commande qui fait Le travail, vous pouvez l'appeler dans des backtstics pour capturer tout ce qu'elle génère afin que vous puissiez l'utiliser plus tard: p> CLS code> fonction (ou la balise code>: écrans code>): p>
CLS code>: p>
Vous avez sauvé le meilleur pour la fin! Capturer la sortie de la ligne de commande «Clear» pour une consommation répétée ultérieure est un excellent tour et l'astuce.
Il y a un petit bug dans la réponse. Variable $ clear_string code> obtient la valeur, mais lors de l'impression de la variable avec un nom légèrement différent est utilisé
$ clear_screen code>.
Les utilisateurs Linux utilisent la commande suivante:
system 'clear';
La méthode la plus courte indépendante du système d'exploitation (et ne nécessitant pas de modules supplémentaires) Méthode qui a fonctionné pour moi a été trouvée dans le thread de moines Perl (cette page contient également d'autres variantes d'effacement de l'écran): system $^O eq 'MSWin32' ? 'cls' : 'clear';