package EvalEater; sub new { bless {} } sub DESTROY { eval { sleep 1 if 0 } } package main; use Test::More 'tests' => 2; use Exception::Class ( 'Bomb' ); my $okay = eval { my $ee = EvalEater->new(); Bomb->throw( error => 'Ouch!' ); 1; }; ok( ! $@, "Eval appears to succeed: $@" ); ok( ! defined $okay, "Eval failed silently" );