in reply to novice 'die' help requested

emm... maybe i didn't understand this discussion properly. but what if you simply localized a $SIG{__DIE__} hook in your eval blocks?
sub check_id { [...] eval { my sig_die_handler = sub { ... }; local $SIG{__DIE__} = \&sig_die_handler(shift); [...] } }
all of these java-like class constructs are unperlish in my opinion. think perl if you want to avoid code overheads.