我想展示一个交替角色的动画/
,|
并且\
。
我应该如何始终在终端的同一个单元格中写作?我需要将光标移回一个位置。
大多数终端将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";
ikegami的答案的一个变种:)
use Time::HiRes qw(sleep);
$| = 1; # Disable buffering on STDOUT ;)
for(1..10) {
for (qw( | / - \ )) {
print "$_\b";
sleep 0.2;
}
}
print
我不知道你如何在 perl 中输出东西,但这通常是通过输出退格字符 \b(ASCII 代码 8)来完成的。例如,在 C++ 中,这是通过输出 char(8) 来完成的。