NAME
Console::ProgressBar - A simple progress bar for Perl console applications
SYNOPSIS
use Console::ProgressBar;
DESCRIPTION
Console::ProgressBar is a simple progress bar for Perl console applications.
use Console::ProgressBar;
# create a progress bar for a task with 20 steps
my $p = Console::ProgressBar->new('Writing files',20);
# for each step done, the progress bar index is incremented
# and the progress bar is displayed at the current cursor position
for(my $i=1; $i <= 20; $i++) {
$p->next()->render();
}
The progress bar displays a title that describe the task and the percentage of completion.
Writing Files [########## ] 50%
How to install ?
If you want install Console::ProgressBar
directly from the git repository, please use the following command :
cpanm https://codeberg.org/auverlot/Console-ProgressBar.git
How to control the progress bar state ?
next()
The next() method indicates that a step is done.
back()
The back() method indicates that the last step must be canceled. The internal index of the progress bar is decremented.
reset()
The reset() method sets the internal index to 0. For the progress bar, none step has be done. The percentage of completion is 0%.
setIndex($aValue)
The setIndex() method set the internal index to the specified value (between 0 and the number of steps).
How to customize the progress bar ?
setTitle($aTitle)
The setTitle() method changes the title of the progress bar. You can easily displaying a contextual information about the step in progress.
Change the appearance
The builder has an optional parameter. It's a hash to change the default values of :
the string that contains the title (
titleMaxSize
),the number of characters used to represent the progression (
length
)the caracter used to fill the progress bar (
segment
).
titleMaxSize length
<------------------> <------------------>
Writing Files [########## ] 50%
^
segment
The following example creates a custom progress bar :
use Console::ProgressBar;
my $p = Console::ProgressBar->new('Writing files',20, {
titleMaxSize => 40,
length => 40,
segment => '='
});
LICENSE
Copyright (C) Auverlot Olivier.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Auverlot Olivier <oauverlot@cpan.org>