Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Dynamically printing out iteration number from foreach loop

by zork42 (Monk)
on Jun 23, 2013 at 16:02 UTC ( #1040331=note: print w/ replies, xml ) Need Help??


in reply to Dynamically printing out iteration number from foreach loop

I need to track where I currently am, and therefore, I would like the program to spit out the current iteration of the loop.

In Windows, "\r" can sometimes be useful when tracking the progress of a script. It's a bit like "\n", except "\n" moves to the left edge of the next line, whereas "\r" moves to the left edge of the current line.

The following script prints 1 to 5 and a string on the same line of output.

I normally put the "\r" at the start of the output. That way if the script dies or outputs something it will not overwrite the progress info. Also, if the output strings are of different sizes, you'll need to output some spaces at the end to overwrite the previous output string.

('Cmd' windows and their buffers can be made wider, if needed, by adjusting the "Screen Buffer Size" and "Window Size" in the "Layout" tab of the window's properties. Right-click on the window's title bar, then select "Properties".)

use strict; use warnings; $| = 1; # enable auto-flush foreach my $i ( 1 .. 5 ) { my $output = '*' x (50 - 10*$i); print "\r$i : $output", " "x20; sleep 1; } print "\n";
Output. NB Each line of output is printed on the same line of the 'Cmd' window.
1 : **************************************** 2 : ****************************** 3 : ******************** 4 : ********** 5 :


Comment on Re: Dynamically printing out iteration number from foreach loop
Select or Download Code
Re^2: Dynamically printing out iteration number from foreach loop
by LanX (Canon) on Jun 23, 2013 at 20:34 UTC
    > In Windows, "\r" can sometimes be useful when tracking the progress of a script.

    why only in Windows? Carriage Return is a universal ASCII-code, no problems using it with Linux terminals or other OSes. :)

    Cheers Rolf

    ( addicted to the Perl Programming Language)

    ) I'm sure someone will now come up with some esoteric OS (like TI99/4a home computer) which might have problems here ... =)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (10)
As of 2014-12-25 19:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (162 votes), past polls