Eval is probably not as bad as you think. If the little extra compilation overhead is a significant portion of your program's run time, you probably shouldn't be building this coderef laden hash anyway.

Local creates a temporary copy of the variable, but it stays global, so there's no reference count increased when you use it in the anonymous sub. When the scope ends, the temporary copy is simply discarded.

my creates a new lexical, our is a lexically scoped "use vars", local creates a temporary copy of the global that will be used while the lexical scope lasts.
Only lexicals can stay shared.
(I have probably made some mistakes or mis-assumptions. If you see any, please do correct me)

Lbh ebgngrq guvf grkg naq abj lbh pna ernq vg. Fb jung? :) -- Whreq


In reply to Re: Re: (jeffa) Re: funky $_ with map {} by Juerd
in thread funky $_ with map {} 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.