私のプログラム (これはたまたま Perl にありますが、この質問は Perl 固有のものではないと思います) は、プログラムのある時点でステータス メッセージを出力Progress: x/yy
します。x
yy
Progress: 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
。ただし、改行を省略すると、出力バッファーはフラッシュされず、何も出力されません。
これに対する良い解決策は何ですか?