$\="\n"; sub inner { print "global_inner" } inner(); sub whatever { inner() } sub outer { local *inner=sub {print "inner_of_outer"}; inner(); whatever(); } outer(); __END__ Subroutine main::inner redefined at c:\perl\push.pm line 9. global_inner inner_of_outer inner_of_outer