our $DEFAULT_HANDLER = sub { die @_ }; #### bruce:1:~/tmp $ cat p.pl #!/usr/bin/perl # vim: sw=4 use strict; use warnings; package fred; our $DEFAULT_HANDLER = sub { die @_ }; our $AUTOLOAD; sub AUTOLOAD { print STDERR "AUTOLOAD(@_) - $AUTOLOAD\n"; my $self = shift; $DEFAULT_HANDLER->('died via indirection'); } package main; my $fred = fred->raise_exception("some test"); bruce:1:~/tmp $ ./p.pl AUTOLOAD(fred some test) - fred::raise_exception died via indirection at ./p.pl line 9. bruce:1:~/tmp $