use Carp qw(confess cluck); BEGIN { *CORE::GLOBAL::warn = \&cluck; *CORE::GLOBAL::die = \&confess; } sub foo { bar() } sub bar { print "in bar\n"; die "badness!" } foo(); __output__ in bar badness! at - line 8 main::bar() called at - line 7 main::foo() called at - line 10