:)
forgot to add the $i++.
And that was just an example.
On Wed, 15 Aug 2001 10:55:58 -0400
Bob Showalter <[EMAIL PROTECTED]> wrote:
> > -----Original Message-----
> > From: Tyler Longren [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, August 15, 2001 10:13 AM
> > To: Perl-Beginners
> > Subject: status messages as the program progresses
> >
> >
> > Hello everyone,
> >
> > I have a while loop that loops through a text file for quite
> > a while (10
> > min or so). Is there any way to print a status-type message
> > while it's
> > looping through?
> > I did something like this now:
> >
> > my $i=0;
> > while ($i le "10000000") {
> > print "Processing\r";
> > }
>
> I hope that's not the whole script, since $i doesn't change :)
>
> >
> > And that works, but if I run the script like this:
> > ./script.pl > test.txt
> >
> > I get a BUNCH of "Processing" lines in test.txt. Is there
> > any other way I
> > can do this?
>
> One thing you can do is print the message every so many lines.
>
> my $i = 0;
> while (<>)
> {
> # (...process line here...)
> print "$i lines processed\n" unless ++$i % 100;
> }
>
> This will print:
>
> 100 lines processed
> 200 lines processed
> 300 lines processed
>
> and so on.
>
> Or, you can print the message every so many seconds:
>
> my $last_time = time;
> my $i = 0;
> while (<>)
> {
> # (...process line here...)
> $i++;
> print("$i lines processed\n"), $last_time = time if time -
> $last_time
> > 30;
> }
>
> This uses the variable $last_time to keep track of when a message was
> last
> printed. If this has been more than 30 seconds, a line is printed and
> the
> $last_time variable is updated.
>
> These methods assume each iteration of the loop is relatively quick. If
> the
> processing for a single line can be lengthy, you can use a $SIG{ALRM}
> handler
> to cause an interrupt in the middle of processing. However, it's
> generally
> not a good idea to do I/O during an event handler, so you usually set a
> flag
> that you check somewhere inside your processing loop.
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]