in reply to overwrite last line printed

Just set up a function that prints to both screen and to the log file. Use that function when you want it to be logged; use regular print if it's the progress messages.

sub dPrint { my ($text, $handle) = @_; print $text; print $handle $text; }

Alternately, just do ....... until it finishes. Maybe one . per 5% or a certain number of records or whatever?