package pkgerr; use strict; use Exporter; use Exception::Class::TryCatch; use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); $VERSION = 1.00; @ISA = qw (Exporter); @EXPORT = (); @EXPORT_OK = qw(good_func bad_func uid ut); %EXPORT_TAGS = (All => [qw(&good_func &bad_func &uid &ut)]); my $class_data = { idusers => "", user_type_id => "", }; sub new { my $class = shift; my $self = {}; my $uid = shift; my $ut = shift; $self->{'idusers'} = $uid; $self->{'user_type_id'} = $ut; bless($self, $class); return $self; } sub good_func { my $self = shift; print "I'm a good function\n"; } sub bad_func { my $self = shift; die "I'm a bad function\n"; } sub uid { my $self = shift; return $self->{'idusers'}; } sub ut { my $self = shift; return $self->{'user_type_id'}; } sub check { my $self = shift; my $dummy; try eval { $dummy = uid($self); bad_func($self); }; if (catch my $err) { print "We set \$dummy to $dummy, and then invoked a bad function\n"; print $err->error,"\n"; } } 1;