#!/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; }