in reply to while loop hanging

Why don't you think about combining the loops into one. It seems to me that it would be pretty easy to increment your counter every time you print out a line...

Replies are listed 'Best First'.
Re: Re: while loop hanging
by Patrick2003 (Initiate) on Jan 31, 2003 at 19:47 UTC
    I thought about that, but I want the total count of rows at the very beginning of my output. Thanks
      OK, so combining this together with no_slogan's advise that the magic while(<>) consumes @ARGV, you need to store @ARGV before the first loop and restore it after the first loop is done.
      my @old_ARGV = @ARGV; my $count; $count++ while <>; print "COUNT = $count\n"; @ARGV = @old_ARGV; print while <>;

      And as you see, it's a bit pointless to first chomp off the newline if you add it later again in the print - so I removed that.

      You could make good use of local here as well, but I leave that as an exercise for the reader ... :)

      -- Hofmator