Your excellent examples of my misuse all boil down to context errors. Another gotcha happens when subs are defined to access lexical variables outside their definition. That makes an accidental closure, giving previous calls influence over the state of subsequent ones. That is a source of almighty difficult heisenbugs.

In effect, local produces a temporary namespace. All code executed within its scope thinks that global variables have the values found in that local namespace. That means you can redefine local $/, *STDERR, $^W, or *CORE::GLOBAL::print, and every sub or builtin called within that scope will honor the new definitions. It is a very handy way to obtain dynamic polymorphism.

When the local namespace goes out of scope, the previous values are back as if nothing had happened.

After Compline,
Zaxo


In reply to Re: nuances of my, and maybe local by Zaxo
in thread nuances of my, and maybe local by Helter

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.