Vorrei cancellare lo schermo in un terminale/console usando Perl. Come lo posso fare?Come si cancella lo schermo in un terminale usando Perl?
Questa è una domanda dal official perlfaq. Siamo importing the perlfaq to Stack Overflow.
Vorrei cancellare lo schermo in un terminale/console usando Perl. Come lo posso fare?Come si cancella lo schermo in un terminale usando Perl?
Questa è una domanda dal official perlfaq. Siamo importing the perlfaq to Stack Overflow.
Questo è il offical FAQ answer meno eventuali modifiche successive.
Per cancellare lo schermo, è sufficiente stampare la sequenza speciale che indica al terminale di cancellare lo schermo. Una volta ottenuta questa sequenza, stamparla quando si desidera cancellare lo schermo.
È possibile utilizzare il modulo Term::ANSIScreen per ottenere la sequenza speciale. Importare la funzione cls
(o il tag :screen
):
use Term::ANSIScreen qw(cls);
my $clear_screen = cls();
print $clear_screen;
Il modulo Term::Cap può anche ottenere la sequenza speciale se si vuole affrontare con i dettagli di basso livello di controllo del terminale. Il metodo Tputs restituisce la stringa per la capacità di data:
use Term::Cap;
$terminal = Term::Cap->Tgetent({ OSPEED => 9600 });
$clear_string = $terminal->Tputs('cl');
print $clear_screen;
In Windows, è possibile utilizzare il modulo Win32::Console. Dopo aver creato un oggetto per l'uscita filehandle che si desidera modificare, chiamare il metodo Cls
:
Win32::Console;
$OUT = Win32::Console->new(STD_OUTPUT_HANDLE);
my $clear_string = $OUT->Cls;
print $clear_screen;
Se si dispone di un programma a riga di comando che fa il lavoro, si può chiamare in apici inversi per catturare qualsiasi cosa uscite in modo è possibile utilizzare in un secondo momento:
$clear_string = `clear`;
print $clear_string;
utenti Linux utilizzare il seguente comando:
system 'clear';
I più brevi moduli aggiuntivi OS-indipendente (e non necessitano di installazione Metodo ni), che ha lavorato per me è stato trovato nel Perl Monks thread (che pagina contiene anche alcune altre varianti di cancellazione dello schermo):
system $^O eq 'MSWin32' ? 'cls' : 'clear';
Questo ha funzionato alla grande per me! (OSX) –
è stato salvato il meglio per ultimo! Catturare l'output della riga di comando "clear" per il consumo ripetuto più tardi è un grande trucco, e ha fatto il trucco. – dmansfield
C'è un piccolo bug nella risposta. La variabile '$ clear_string' ottiene il valore, ma quando si stampa la variabile con un nome leggermente diverso viene usato' $ clear_screen'. – bessarabov