http://www.perlmonks.org?node_id=171857


in reply to How to UPDATE rather than append to STDOUT?

On any of the various Un*x you can use this code. This may work on windows as well (dunno, I don't use it)
$|++; for ($i=0; $i<1000; $i++) { print "\r$i"; } print "\n";
The first line turns off buffering, I suspect you want to see the numbers increment exactly as they happen.

Use "\r" to send the cursor back to the beginning of the line. If you use \b to backspace one character, you'd have to keep up with how long $i has become, and/or add/remove \b's if you change the text of your status line. Send the cursor to the front of the line, reprint the whole thing and be done with it.

Print a \n at the bottom of the loop. Otherwise your terminal prompt (or the next line of output) will get displayed at the end of the last status line and just look plain weird (especially if it starts with a number :) ).

HTH

/\/\averick
OmG! They killed tilly! You *bleep*!!