#!/usr/bin/env perl use strictures; use Time::Progress; use Time::HiRes "usleep"; # <- just for demo. my $total = 42; my $progress = Time::Progress->new(); $progress->attr( min => 1, max => $total ); $| = 1; for my $done ( 1 .. $total ) { usleep( rand 500_000 ); print $progress->report("\rProcessing: $total files to process %L %40B%E %p", $done); } print "\nDone!\n";