我的变量$i
从1到100.是否可以让页面显示#动态替换之前的#?
假设我有以下代码:
#!/usr/bin/perl
my $i = 0;
for my $i ('1' .. '10') {
print "$i";
sleep(1);
}
如何制作而不是打印“12345 ...”,它只是替换之前的#。因此1
变为2
,2
变为3
等等
答案 0 :(得分:6)
对于像这样简单的东西,你可以使用退格或回车来移回光标。
$| = 1; # Autoflush.
for my $i (1..10) {
print("\r", $i);
sleep(1);
}
print("\n");
答案 1 :(得分:2)
" \ R"将光标返回到行的开头。相反,您可能只想退格最后打印的数字,然后打印下一个......就像这样:
$| = 1;
my $i = 0;
while ($i < 10) {
print $i;
sleep 1; # REPLACE WITH WHATEVER PROCESS YOU NEED TO DO
print "\b" x length $i++;
}
while
循环的最后一行打印一个与刚刚打印的数字长度相同的退格键,然后递增它。这是因为后缀++
在评估后递增。