in reply to using STDIN that has no line breaks
You could also experiment with changing $RS from newline to carriage-return. The 'precentage progress' that continually updates the same line is done via carriage-return. However, I don't know if you get the CR at the 100% mark.