use strict; use feature ':5.10'; use Term::ProgressBar; my @files = qw(30 50); foreach my $f (@files) { my $max = $f; my $progress = Term::ProgressBar->new({name => 'Processed', count => $max, remove => 1, ETA => 'linear'}); $progress->max_update_rate(1); $progress->minor(0); my $next_update = 0; foreach my $i (0..$max) { sleep 1; # represents stuff my script is actually processing $next_update = $progress->update($_) if $_ >= $next_update; } $progress->update($max) if $max >= $next_update; }