2011-01-05 9 views

Respuesta

12

Este es el offical FAQ answer menos cualquier edición posterior.

Para borrar la pantalla, solo tiene que imprimir la secuencia especial que le dice al terminal que borre la pantalla. Una vez que tenga esa secuencia, envíela cuando quiera borrar la pantalla.

Puede usar el módulo Term::ANSIScreen para obtener la secuencia especial. Importar la función cls (o la etiqueta :screen):

use Term::ANSIScreen qw(cls); 
my $clear_screen = cls(); 

print $clear_screen; 

El módulo Term::Cap también puede obtener la secuencia especial si usted quiere tratar con los detalles de bajo nivel de control del terminal. El método Tputs devuelve la cadena para la capacidad dada:

use Term::Cap; 

$terminal = Term::Cap->Tgetent({ OSPEED => 9600 }); 
$clear_string = $terminal->Tputs('cl'); 

print $clear_screen; 

En Windows, puede utilizar el módulo Win32::Console. Después de crear un objeto para la salida gestor de archivo que desea modificar, llame a la Cls método:

Win32::Console; 

$OUT = Win32::Console->new(STD_OUTPUT_HANDLE); 
my $clear_string = $OUT->Cls; 

print $clear_screen; 

Si usted tiene un programa de línea de comandos que hace el trabajo, se le puede llamar entre comillas sencillas para capturar lo que da salida a por lo se puede usar más adelante:

$clear_string = `clear`; 

print $clear_string; 
+0

guardó el mejor para el final! Capturar la salida de la línea de comando "clara" para consumo posterior repetido es un gran truco, y lo hizo. – dmansfield

+0

Hay un pequeño error en la respuesta. La variable '$ clear_string' obtiene el valor, pero cuando se imprime la variable con un nombre ligeramente diferente se usa' $ clear_screen'. – bessarabov

3

Usuarios de Linux usar el siguiente comando:

system 'clear'; 
6

el más corto módulos adicionales independiente del sistema operativo (y no necesitar instalar Método ciones) que trabajó para mí fue encontrado en el Perl Monks thread (esa página también contiene algunas otras variaciones de la limpieza de la pantalla):

system $^O eq 'MSWin32' ? 'cls' : 'clear'; 
+0

¡Esto funcionó muy bien para mí! (OSX) –

Cuestiones relacionadas