# This is file P.pm package P; use strict; use warnings; use PX; .... eval { PX::myfunc(...); }; if($@) { print "Exception!\n"; } .... # This is file PX.pm package PX; use strict; use warnings; sub myfunc { ... print("let's do it\n"); foreach my $c (@{ $foo->{bar}->{baz} }) { oink_oink_oink(); } print "I've done it\n"; } #### let's do it Exception! #### let's do it Pseudo hashes are deprecated at.... #### use warnings FATAL => qw(all);