Perl 5.006_001 taught Perl itself how to do what was being done in vanilla Perl code before that. See Symbol for some remnants of that prior art.

People were getting lexical file handles that worked just fine in Perl prior to 5.006_001 by doing things rather close to:

my $fh = do { local *FH; \*FH };

That is, use local to get Perl to create an extra GLOB, take a reference to that glob, then let local remove that GLOB from the symbol table so you have a GLOB that isn't global and will be destroyed based on lexical scope (and reference counting).

Symbol actually jumps through more hoops than my one-line example above. But it used to be pretty darn close to that.

- tye        


In reply to Re^8: Scoping question - will file handle be closed? (5.6.1) by tye
in thread Scoping question - will file handle be closed? by Monk::Thomas

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.