package Somewhere; sub test { print "leaving original test\n"; }; package My::Somewhere; use vars qw($old_test); $old_test = &Somewhere::test; *Somewhere::test = sub { $old_test->(@_); print "leaving overridden test\n"; };