The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

String::ProgressBar - Produces a simple progress bar

SYNOPSIS

  use String::ProgressBar;
  my $pr = String::ProgressBar->new( max => 30 );

  $pr->update( 10 ); # step 10 of 30
  $pr->write;

  # shows that:
  # [=======             ]  33% [10/30]

  # If you want to print it by yourself:

  use String::ProgressBar;
  my $pr = String::ProgressBar->new( max => 30 );

  print $pr->update( 10 )->string()."\r";

The progress bar has a fix matrix and look liket that:

first          [====================] 100% [30/30]

DESCRIPTION

It is an OO class to produce a simple progress bar which can be used at a shell. It does not use curses and has no large dependencies.

REQUIRES

Carp

METHODS

new

my $object = $this->new(max => $int);

Constructor

It can take several key value pairs (here you see also the default values):

length          =>  20     # length of the bar
border_left     =>  '['    # left bracked of the bar
border_right    =>  ']',   # right bracked of the bar
bar             =>  '=',   # used element of the bar
show_rotation   =>  0,     # if it should show a rotating element
show_percent    =>  1,     # show percent
show_amount     =>  1,     # show value/max
text            =>  '',    # text before text bar. If empty, starts on the very left end
info            =>  '',    # text after the bar
print_return    =>  0,     # whether it should return after last value with new line
text_length     =>  14,    # length of the text before the bar
allow_overflow  =>  0,     # allow values to exceed 100%
bar_overflow    =>  0,     # allow bar to exceed normal width when value is over 100%

info

my $object = $this->info($string);

updates info (after bar) with a new value and returns the object itself.

string

my $string = $this->string();

returns the bar as simple string, so you may write it by yourself.

text

my $object = $this->text($string);

updates text (before bar) with a new value and returns the object itself.

update

$this->update();

updates the bar with a new value and returns the object itself.

write

$this->write();

Writes the bar to STDOUT.

AUTHOR

Andreas Hernitscheck ahernit(AT)cpan.org

LICENSE

You can redistribute it and/or modify it under the conditions of LGPL.