{ package foo; sub add { my ($x, $y) = @_; die "not a number\n" unless $x =~ /\d/ and $y =~ /\d/; $x + $y } } # catch any exceptions eval { print "1+2==", foo::add(1, 2); print "a+2==", foo::add("a", 2); }; # handle any exceptions caught by eval if ($@) { push @errors, $@; } # program continues...