Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Progress indicator

by mirod (Canon)
on Aug 20, 2001 at 14:08 UTC ( [id://106168]=CUFP: 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:

  while(...)
    { # whatever you have to do
      progress();
    }

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 +OTs 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; $i++; if( $i == $step) { $i=0; print STDOUT DOT; $j++; unless( $j % BLOCK) { print STDOUT SPACE; if( $j == LINE) { $j=0; print STDOUT "\n"; } } } } }

Replies are listed 'Best First'.
Re: Progress indicator
by RedDog (Pilgrim) on Aug 21, 2001 at 05:41 UTC

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2026-04-11 20:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.