my $stop; my $speed = 0; my $start = time; while () { $counter++; if ($counter =~ /00$/) { $stop = time; my $diff = $stop - $start; my $tdiff = ($diff == 0) ? 1 : $diff; $speed = sprintf("%.f", ($counter/$tdiff)); } ... line processing ... print "Processed: $counter (at $speed lines/s) \r"; }