title: Perl while loop / reading file
body: <p>I'm new to Perl and I have a problem when reading a file line by line. I started with a tutorial which suggested using a while loop. That worked fine, however I wanted to have an option to break out of the loop in case of an error. I know I can use the "last" keyword, but I don't like that very much, I would like to include it in the while loop's boolean expression so it is easier to see on what conditions it stops. So I did</p>
  
  <pre><code>$error=0;
  while ( (!$error) &amp;&amp; (&lt;MYFILE&gt;) ) {
  print $_;
  ...    
  }
  </code></pre>
  
  <p>Unfortunately, this doesn't work because $_ seems to contain a "uninitialized value". For some reason, when I change (!$error) to (!0), it works again. I would understand that it was not working had I used || because of lazy evaluation, but with &amp;&amp; in this case both sides need to be evaluated so I don't understand why it doesn't initialize the line variable.</p>