Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Progress indicator

by mirod (Canon)
on Aug 20, 2001 at 14:08 UTC ( #106168=snippet: print w/ replies, xml ) Need Help??


I often run scripts that have to run for a while and that do not output anything. So I like to see how they are doing, if they are just sitting there waiting for something to happen, or maybe stuck in an infinite loop.

So I use this subroutine to display an indicator of how many times I have been through my main loop on STDOUT.

Its used this way:

    { # whatever you have to do

As I use in various situations the main loop can be run any time from a few hundred to several tens of thousand times, so you can pass a parameter or change the DEFAULT_STEP constant to display a dot for every n loops. After 10 dots a space is printed, and after 50 a new line (those values can also be changed).

One last thing: if you want to see the dots displayed as soon as they are generated don't forget to unbuffer the output, for example with $|=1;

Oh and if the features of this progress indicator are not what you are looking for, here is a list of previous nodes on that subject:

{ use constant DEFAULT_STEP => 100; # a DOT is printed every DEFAULT_S
+TEP call
  use constant LINE         => 50;  # nb of DOT per line      
  use constant BLOCK        => 10;  # a SPACE is printed after BLOCK D
  use constant DOT          => '.'; # probably no need to change this
  use constant SPACE        => ' '; # probably no need to change this
  my( $i, $j);
  sub progress
    { my $step= shift || DEFAULT_STEP;
      if( $i == $step)
        { $i=0;
          print STDOUT DOT;
          unless( $j % BLOCK)
            { print STDOUT SPACE;
              if( $j == LINE)
                { $j=0;
                  print STDOUT "\n";
Comment on Progress indicator
Download Code
Replies are listed 'Best First'.
Re: Progress indicator
by RedDog (Pilgrim) on Aug 21, 2001 at 05:41 UTC

Back to Snippets Section

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://106168]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (9)
As of 2015-12-01 22:45 GMT
Find Nodes?
    Voting Booth?

    My keyboard shows this many letters:

    Results (29 votes), past polls