ProgressMonitor is a flexible and configurable framework for providing feedback on how a long-running task is proceeding.
SYNOPSIS
use strict;
use warnings;
use Time::HiRes qw(usleep);
use ProgressMonitor::Stringify::ToStream;
use ProgressMonitor::Stringify::Fields::Bar;
use ProgressMonitor::Stringify::Fields::Fixed;
use ProgressMonitor::Stringify::Fields::Percentage;
sub someTask
{
my $monitor = shift;
$monitor->prepare();
$monitor->begin(100);
for (1 .. 40)
{
usleep(100_000);
$monitor->tick(1);
}
anotherTask($monitor->subMonitor({parentTicks => 20}));
for (1 .. 40)
{
usleep(100_000);
$monitor->tick(1);
}
$monitor->end();
}
sub anotherTask
{
my $monitor = shift;
$monitor->prepare();
$monitor->begin(3000);
for (1 .. 3000)
{
usleep(1_000);
$monitor->tick(1);
}
$monitor->end();
}
someTask(
ProgressMonitor::Stringify::ToStream->new(
{
fields =>
[
ProgressMonitor::Stringify::Fields::Bar->new,
ProgressMonitor::Stringify::Fields::Fixed->new,
ProgressMonitor::Stringify::Fields::Percentage->new,
]
}
)
);
Product's homepage
Requirements:
· Perl