strawberry - ¿Cuál es la mejor manera de borrar la pantalla en Perl?
perl tutorial (6)
Idealmente, algo multiplataforma.
El CPAN es probablemente el mejor camino a seguir. Eche un vistazo a Term :: Screen: Uni :
require Term::Screen::Uni;
my $scr = new Term::Screen::Uni;
$scr->clrscr()
Generalmente uso Term :: ANSIScreen de CPAN, que me proporciona todo tipo de funciones útiles relacionadas con la consola.
use Term::ANSIScreen qw(cls);
cls();
Si estás hablando de una terminal, usaría algo como la lib de Curses para hacerlo.
Hay un buen módulo de Curses para acceder a él, que puede usar así:
perl -MCurses -e ''$win=new Curses;$win->clear()''
print "/033[2J"; #clear the screen
print "/033[0;0H"; #jump to 0,0
En OS X y Linux, puede usar el siguiente comando de Perl:
system("clear");
No sé cuál es el equivalente en Windows.
Editar: El equivalente de Windows es:
system("cls");
De la respuesta de perlfaq8 a ¿Cómo borro la pantalla ?
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 desea tratar los detalles de bajo nivel del control de 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 usar el módulo Win32 :: Console. Después de crear un objeto para el identificador de archivo de salida que desea modificar, llame al método Cls:
use Win32::Console;
$OUT = Win32::Console->new(STD_OUTPUT_HANDLE);
$OUT->Cls;
Si tiene un programa de línea de comandos que hace el trabajo, puede invocarlo para capturar lo que se genere para que pueda usarlo más adelante:
$clear_string = `clear`;
print $clear_string;