I'd first check that dieing out of an eval still gives the two locals a chance to do their "undo" magic. Even if it does, this "undo" magic may well be happening outside of the eval's protection against die, giving you a race condition.

You could probably even write some test code such that the local undo causes something to be destroyed which dies which should demonstrate whether you are still inside of eval's protection.

sub DESTROY { warn "Destroying $_[0][0]...\n"; die "Die from $_[0][0]\ +n" } $global= "before"; eval {{ local $global= bless ["global"]; die "Die inside eval.\n" unless @ARGV; }}; warn "global($global) eval($@)\n";
which, if @ARGV is empty, produces:
Destroying global... global(before) eval(Die inside eval. (in cleanup) Die from global )

which seems to indicate that my version of Perl is handling this case correctly.

                - tye

In reply to Re: Eval not catching Dies (local) by tye
in thread Eval not catching Dies by jdhedden

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.