in reply to Re: Why <c>eval {...};if ($@) { die $@ } else { ...</c> ???
in thread Why <c>eval {...};if ($@) { die $@ } else { ...</c> ???

Actually, eval without diagnostics after the call and without localizing $@ is what's dangerous here, not the pattern itself. And that doesn't apply to DESTROY only, although not with such catastrophic consequences. Like trampling on $_. Yes, "hooray for global variables"... ;-)