But I still don't see why this will be a problem in *all* cases, or in most likelihood the case in question in particular - a single file program which is unlikely to be used in a shared environment: there is no opportunity for any unwanted access to the filehandles.

It should also be borne in mind that whilst the bareword filehandle might be globally accessible, the symbols are package qualified as demonstrated by the following:

use strict; use warnings; + open FOO, ">x"; + package bar; + close FOO or warn "$!\n";; + package main; + print FOO "Gshshsh";
It would therefore be reasonable to assume the risk of unintentional access is fairly limited, leaving only a notional risk of intentional misuse of the filehandle by some malicious code - and, well, if you are running untrusted code in a manner that would allow that to happen then you have far worse problems than messing with a programs file handles would create.

As I say, lexical filehandles have their uses when it would be tricky or impossible to use bareword filehandles. But I just don't go with the absolutism.

/J\


In reply to Re^6: Sub Return Value Help by gellyfish
in thread Sub Return Value Help 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.