Это официальный ответ на часто задаваемые вопросы минус любые последующие изменения.
Чтобы очистить экран, вам просто нужно распечатать специальную последовательность, которая сообщает терминалу очистить экран.Если у вас есть эта последовательность, выведите ее, когда хотите очистить экран.
Вы можете использовать модуль Term :: ANSIScreen , чтобы получить специальную последовательность.Импортируйте функцию cls
(или тег :screen
):
use Term::ANSIScreen qw(cls);
my $clear_screen = cls();
print $clear_screen;
Модуль Term :: Cap также может получить специальную последовательность, если вы хотите работать с низкимдетали управления терминалом.Метод Tputs возвращает строку для данной возможности:
use Term::Cap;
$terminal = Term::Cap->Tgetent( { OSPEED => 9600 } );
$clear_string = $terminal->Tputs('cl');
print $clear_screen;
В Windows вы можете использовать модуль Win32 :: Console .После создания объекта для выходного файлового дескриптора, на который вы хотите повлиять, вызовите метод Cls
:
Win32::Console;
$OUT = Win32::Console->new(STD_OUTPUT_HANDLE);
my $clear_string = $OUT->Cls;
print $clear_screen;
Если у вас есть программа командной строки, которая выполняет эту работу, вы можете вызывать ее в обратных галочках длявсе, что он выводит, чтобы вы могли использовать его позже:
$clear_string = `clear`;
print $clear_string;