#!/usr/bin/perl
use strict;
use warnings;
my $spinner_pos = 0;
sub spin {
my $spinner = '|\-/';
print STDERR substr($spinner, $spinner_pos++%length($spinner), 1)."\r";
}
while (1) {
qx(cat /etc/termcap); #simulate doing important stuff
spin();
}
####
$progressindicator->start;
$progressindicator->stop;
####
#!/usr/bin/perl
$|=1;
do{ print progress_bar( $_, 100, 25, '=' ); sleep 1 } for 1..100;
sub progress_bar {
my ( $got, $total, $width, $char ) = @_;
$width ||= 25;
$char ||= '=';
$num_width = length $total;
sprintf "|%-${width}s| Got %${num_width}s bytes of %s (%.2f%)\r",
$char x (($width-1)*$got/$total). '>', $got, $total, 100*$got/$total;
}