Update salida de línea de comando

Mi programa (que está en Perl, aunque no creo que esta pregunta sea específica de Perl) emite mensajes de estado en un punto del programa del formularioProgress: x/yy dóndex yyy son un número, como:Progress: 4/38.

Me gustaría "sobrescribir" la salida anterior cuando se imprime un nuevo mensaje de estado para no llenar la pantalla con mensajes de estado. Hasta ahora, he intentado esto:

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;
}

El carácter de retroceso no se imprimirá si incluyo una nueva línea en$progressString. Sin embargo, si omito la nueva línea, el búfer de salida nunca se vacía y no se imprime nada.

¿Cuál es una buena solución para esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta