Expanding on what Juerd suggested a little, consider that you can do this sort of thing:

use strict; my $line = 1; my $sub = 'foo'; eval "#line $line $sub\ndie"; print "1: $@"; $line = 2; $sub = 'bar'; eval "#line $line $sub\ndie"; print "2: $@";
produces:
1: Died at foo line 1. 2: Died at bar line 2.

Also consider the fact that even though you're building blocks of code, those blocks must eventually get parsed as eval EXPR type eval's unless I'm not understanding something. The only time I see those eval(xxx) messages is when I use expressions. When I use blocks I get the file name and line number the block is in. I believe that's because eval blocks are compiled at compile time where file names and line numbers are set. Expressions are compiled at run time and have no file name/line number context unless given, as in Juerd's examples that I expanded on. My reasoning may be incorrect, but testing shows the difference. This code in a file named evalt

use strict; eval { die; }; print "1: $@"; eval "die"; print "2: $@";
produces:
1: Died at evalt line 7. 2: Died at (eval 1) line 1.

In reply to Re: Is it possible to determine the eval block accumulator? by steves
in thread Is it possible to determine the eval block accumulator? by BlacKat

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.