gpt4 book ai didi

perl - 如何在 perl 上删除或更改最后一次打印的显示?

转载 作者:行者123 更新时间:2023-12-03 19:42:14 24 4
gpt4 key购买 nike

我试图做的是打印出一个字符串,然后经过几次背景检查,更改之前所说的字符串?

所以这是它最初的样子:

#
Loading design modules....please wait.

然后经过几次背景检查后,它将删除“正在加载设计模块....请稍候。”然后在不清除整个 CLI 屏幕的情况下将其更改为以下内容:
#
Design module loaded!

到目前为止,这是我的代码:
#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;

use feature 'say';
use feature 'switch';

use IO::Socket;
use Scalar::Util qw(looks_like_number);
use Term::ANSIScreen qw/:cursor :screen/;

$| = 1;
print "Loading design modules....please wait";
sleep(5);
say "Design module loaded!";

最佳答案

使用savepos()保存光标位置和loadpos()回到那个保存的位置。

这是第一次尝试:

#!/usr/bin/perl

use strict;
use warnings;
use feature 'say';

use Term::ANSIScreen ':cursor';

$| = 1;

savepos;

print "Loading design modules....please wait";
sleep 5;
loadpos;
say "Design module loaded!";

但是由于第二个字符串比第一个字符串短,我们最终会看到两个字符串的位:
Design module loaded!s....please wait

最简单的解决方案可能是在打印第二个字符串之前打印一串空格来覆盖第一个字符串。
#!/usr/bin/perl

use strict;
use warnings;
use feature 'say';

use Term::ANSIScreen ':cursor';

$| = 1;

savepos;

print "Loading design modules....please wait";
sleep 5;
loadpos;
print ' ' x 37;
loadpos;
say "Design module loaded!";

关于perl - 如何在 perl 上删除或更改最后一次打印的显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62129890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com