That would fail if you put use strict 'refs' in the eval, right?

The eval should inherit use strict 'refs'; from the parent. The problem is that you wouldn't notice it failing unless you checked $@.

Now, I'm curious as to why you keep saying that string eval is a waste.

String eval is usually a waste when you can do without because string eval requires: that the code be compiled each time (a signifigant amount of time, probably), and that you be careful to not make mistakes like having variables expanded before the eval like you did. The first problem is the most signifigant. When you have to parse some perl code, rather then just run the appropriate if or item from a dispatch table it's usually much slower, something you'll notice especially when it's done a lot. Therefore when there are ways to do without it's (usually) best to take them. In fact avoiding evals of strings is probably the reason symrefs where included in the first place.


In reply to Re: Re: (tye)Re2: Eval and $@% ... by wog
in thread Eval and $@% ... by dragonchild

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.