Is my understanding of eval correct as to after having eval'd some perl code introducing my variables, they go out of scope directly afterwards?

What I mean written in code:

{ my $code = "my $a = 1;"; # current scope doesn't have a clue what $a is "yet" eval $code; # current scope doesn't have a clue what $a is "any more" (?) }

I'm trying to export lexically scoped (i.e. my variables) via eval which haven't been and are not to be defined in the code scope before.

Global scoped variables are not of any help to me, nor local variables to be defined in forehand; what I want are lexically scoped variables in the lexical scope I execute eval in.

Is there any way to do this (WITHOUT having to define them before executing eval)?

Thank very much for any help!


In reply to Usage of 'my' in 'eval' 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.