11
votes

Comment effacer l'écran dans un terminal à l'aide de Perl?

Je voudrais effacer l'écran dans un terminal / console à l'aide de Perl. Comment puis-je faire ça?


Ceci est une question de Perlfaq officiel . Nous sommes Importation du perlfaq pour empiler débordement .


0 commentaires

3 Réponses :


12
votes

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.

Vous pouvez utiliser le TERM :: ANSISCREEN Module pour obtenir la séquence spéciale. Importer la fonction CLS fonction (ou la balise : écrans ): xxx

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: xxx

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 CLS : xxx

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: xxx


2 commentaires

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 obtient la valeur, mais lors de l'impression de la variable avec un nom légèrement différent est utilisé $ clear_screen .



6
votes

Les utilisateurs Linux utilisent la commande suivante:

system 'clear';


0 commentaires

8
votes

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';


0 commentaires