Ответ 1
CPAN, вероятно, лучший способ. Взгляните на Term:: Screen: Uni:
require Term::Screen::Uni;
my $scr = new Term::Screen::Uni;
$scr->clrscr()
В идеале что-то кросс-платформенное.
CPAN, вероятно, лучший способ. Взгляните на Term:: Screen: Uni:
require Term::Screen::Uni;
my $scr = new Term::Screen::Uni;
$scr->clrscr()
print "\033[2J"; #clear the screen
print "\033[0;0H"; #jump to 0,0
Я обычно использую Term::ANSIScreen из CPAN, который дает мне всевозможные полезные функции, связанные с консолью.
use Term::ANSIScreen qw(cls);
cls();
От perlfaq8 ответ на Как очистить экран:
Чтобы очистить экран, вам просто нужно распечатать специальную последовательность, которая сообщает терминалу очистить экран. После того, как вы получите эту последовательность, выведите ее, когда вы хотите очистить экран.
Вы можете использовать модуль Term:: ANSIScreen для получения специальной последовательности. Импортируйте функцию cls (или тег экрана):
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:
use Win32::Console;
$OUT = Win32::Console->new(STD_OUTPUT_HANDLE);
$OUT->Cls;
Если у вас есть программа командной строки, которая выполняет задание, вы можете вызвать ее в обратном направлении, чтобы захватить все, что она выводит, чтобы вы могли использовать ее позже:
$clear_string = `clear`;
print $clear_string;
Если вы говорите о терминале, я бы использовал что-то вроде Curses lib для этого.
Для доступа к нему есть хороший модуль Curses, который вы можете использовать следующим образом:
perl -MCurses -e '$win=new Curses;$win->clear()'
В OS X и Linux вы можете использовать следующую команду Perl:
system("clear");
Не знаю, что эквивалент находится под Windows.
Изменить: эквивалент Windows:
system("cls");