title: Why does Programming Perl use local (not my) for filehandles?
body: <p>When I read through <em>Programming Perl</em>, 2nd Edition, Page 51, something confuses me :</p>
  
  <pre><code>sub newopen {
      my $path = shift;
      local *FH;    #not my!
      open (FH, $path) || return undef;
      return *FH;
  }
  
  $fh = newopen('/etc/passwd');
  </code></pre>
  
  <p>My I know, why we are not recommenced to use my? So far, I cannot see anything will go wrong if we use my().</p>
  
  <p>Thanks!</p>