sub SomeOtherSub { print "c\n"; undef->foo(); print "d\n"; } sub SomeSub { print "b\n"; SomeOtherSub(); print "e\n"; } print "a\n"; eval { SomeSub(); 1 } or print("Caught an error!\n"); print "f\n";