Моя программа (которая находится на Perl, хотя я не думаю, что этот вопрос специфичен для Perl) выводит сообщения о состоянии в одной точке программы в форме Progress: x / yy
, где x
и yy
- это число, например: Прогресс: 4/38
.
Я хотел бы «перезаписать» предыдущий вывод, когда печатается новое сообщение о состоянии, чтобы я не заполнял экран статусные сообщения. Пока что я пробовал это:
my $progressString = "Progress\t$counter / " . $total . "\n";
print $progressString;
#do lots of processing, update $counter
my $i = 0;
while ($i < length($progressString)) {
print "\b";
++$i;
}
Символ возврата не будет печататься, если я добавлю новую строку в $ progressString
. Однако, если я опущу перевод строки, буфер вывода никогда не сбрасывается и ничего не печатается.
What ' хорошее решение для этого?