答案 0 :(得分:12)
这是offical FAQ answer减去任何后续修改。
要清除屏幕,您只需打印告诉终端清除屏幕的特殊序列。完成该序列后,在想要清除屏幕时输出它。
您可以使用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;
答案 1 :(得分:6)
Perl Monks thread中找到了与我无关的最短操作系统(并且不需要额外的模块安装)方法(该页面还包含清除屏幕的其他一些变体):
system $^O eq 'MSWin32' ? 'cls' : 'clear';
答案 2 :(得分:5)
Linux用户使用以下命令:
system 'clear';