Perl 输出后清屏

Sri*_*uru 1 perl

我想在执行脚本后刷新输出,并且所有输出都不应该出现在我的终端屏幕中。

假设我有以下示例

#!/usr/bin/perl
print "HAI \n";
sleep 5;
Run Code Online (Sandbox Code Playgroud)

如果我执行上面的脚本

# ./file
HAI
#
Run Code Online (Sandbox Code Playgroud)

我想将上述输出作为

# ./file
#
Run Code Online (Sandbox Code Playgroud)

HAI 应该显示 5 秒,它应该被删除,并且终端中不应该有像腻子一样的输出。

Gol*_*wby 5

如前所述,只需设置 $| 为真值将自动刷新您的结果。

当您说“HAI 应该显示 5 秒钟并且应该被删除并且终端中不应该有像腻子一样的输出。”时,您实际上是在描述从屏幕上删除打印的文本。

为此,您需要使用特殊输出。请参阅 Term::ANSIScreen 以获得一个可以帮助您做到这一点的 perl 模块。

这里有一些代码可以满足您的要求:

use strict;
use Term::ANSIScreen qw/:cursor :screen/;

$| = 1;

savepos;
print "HAI";
sleep 5;
loadpos;
clline();
Run Code Online (Sandbox Code Playgroud)