我想展示一个动画,用于替换角色/
,|
和\
。
我怎么总是写在终端的同一个小区?我需要将光标移回一个位置。
答案 0 :(得分:5)
大多数终端都会通过向后移动光标来处理退格(chr(8)
)。关键是禁用缓冲。
use Time::HiRes qw( sleep );
$| = 1; # Disable buffering on STDOUT.
my $BACKSPACE = chr(0x08);
my @seq = qw( | / - \ );
for (;;) {
print $seq[0];
push @seq, shift @seq;
sleep 0.200;
print $BACKSPACE;
}
print "$BACKSPACE $BACKSPACE";
答案 1 :(得分:2)
ikegami答案的一个变种:)
use Time::HiRes qw(sleep);
$| = 1; # Disable buffering on STDOUT ;)
for(1..10) {
for (qw( | / - \ )) {
print "$_\b";
sleep 0.2;
}
}
print
答案 2 :(得分:1)
我不知道如何在perl中输出内容,但这通常是通过输出退格字符\ b(ASCII代码8)来完成的。例如,在C ++中,这是通过输出char(8)来完成的。