in reply to Re: Re: Re: Re: advice for reading data from a file
in thread advice for reading data from a file

My mistake, should be while (defined ($_ = <$fh>)) {.... Forgot the bracket arround <$fh>. graff suggests that the defined check is implicit, but I would still leave the code as it is. A bit of defensive programming would not hurt.

Replies are listed 'Best First'.
Re:^nth advice for reading data from a file
by graff (Chancellor) on Jan 19, 2004 at 03:54 UTC
    Actually, it's not just me. The perlop man page (way down in the section on "I/O Operators") says:
    The following lines are equivalent: while (defined($_ = <STDIN>)) { print; } while ($_ = <STDIN>) { print; } while (<STDIN>) { print; } for (;<STDIN>;) { print; } print while defined($_ = <STDIN>); print while ($_ = <STDIN>); print while <STDIN>;
      Yes you are quite right. I tried the following script and I am convienced. I have mixed it up with looping through array elements the other day, where I was caught by the '0' gotcha' and became a bit paranoid.
      use strict; use warnings; while (<DATA>) { print; } __DATA__ 0 1 2 3