Lexical filehandles behave like any other reference and they are easily passed around between subroutines (no \*glob stuff). They also have the advantage that they self close the file when they go out of scope. So, you dont have to worry about two parts of your code clobbering each other by using the same global filehandle, you get autoclose behavior when the file goes out of scope (globals if not closed explicitly may not be closed until process termination), and you get a more consistant behaviour/use of the variable. The latter point is important as it means you cant write a bunch of subs that all read from the same filehandle unless those subs also accept the filehandle as an argument. This is a good thing as it clarifies the data flow of your code.

I know of no disadvantages of using lexical filehandles. IMO its pretty well always better to use them over global filehandles.

---
$world=~s/war/peace/g


In reply to Re^4: Strings with @ by demerphq
in thread Strings with @ by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.