use Term::ProgressBar; my $progress = Term::ProgressBar->new({name => 'Scaling images', count => scalar @imgfiles, ETA => 'linear'}); # update ETA once per second at most $progress->max_update_rate(1); foreach (@imgfiles) { perform_imaging_ops($_); $progress->update(); }