小智 31

print "\033[2J";    #clear the screen
print "\033[0;0H"; #jump to 0,0
Run Code Online (Sandbox Code Playgroud)

  • 不需要安装,也不会在某些平台上运行. (10认同)

zig*_*don 15

CPAN可能是最好的方式.看看Term :: Screen:Uni:

require Term::Screen::Uni;
my $scr = new Term::Screen::Uni;

$scr->clrscr()
Run Code Online (Sandbox Code Playgroud)


tse*_*see 11

我通常使用CPAN中的Term :: ANSIScreen,它为我提供了各种有用的与控制台相关的功能.

use Term::ANSIScreen qw(cls);
cls();
Run Code Online (Sandbox Code Playgroud)


bri*_*foy 7

perlfaq8的回答我如何清除屏幕:


要清除屏幕,您只需打印告诉终端清除屏幕的特殊序列.完成序列后,在想要清除屏幕时输出.

您可以使用Term :: ANSIScreen模块来获取特殊序列.导入cls函数(或:screen标签):

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

print $clear_screen;
Run Code Online (Sandbox Code Playgroud)

如果要处理终端控制的低级细节,Term :: Cap模块也可以获得特殊序列.Tputs方法返回给定功能的字符串:

use Term::Cap;

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

print $clear_screen;
Run Code Online (Sandbox Code Playgroud)

在Windows上,您可以使用Win32 :: Console模块.在为要影响的输出文件句柄创建对象后,调用Cls方法:

use Win32::Console;

$OUT = Win32::Console->new(STD_OUTPUT_HANDLE);
$OUT->Cls;
Run Code Online (Sandbox Code Playgroud)

如果你有一个命令行程序来完成这项工作,你可以用反引号调用它来捕获它输出的内容,以便你以后可以使用它:

$clear_string = `clear`;

print $clear_string;
Run Code Online (Sandbox Code Playgroud)


Sec*_*Sec 6

如果你在谈论终端,我会使用像Curses lib这样的东西.

有一个很好的Curses模块可以访问它,你可以这样使用:

perl -MCurses -e '$win=new Curses;$win->clear()'
Run Code Online (Sandbox Code Playgroud)


小智 6

在OS X和Linux下,您可以使用以下Perl命令:

system("clear");
Run Code Online (Sandbox Code Playgroud)

不知道Windows下的等价物是什么.

编辑:Windows等效于:

system("cls");
Run Code Online (Sandbox Code Playgroud)