sub MainSub { my $name = (caller 0)[3]; print "My name is $name\n"; } *sub1 = \&MainSub; *sub2 = \&MainSub; *sub3 = \&MainSub; sub1(); sub2(); sub3(); #### My name is main::sub1 My name is main::sub2 My name is main::sub3 #### My name is main::MainSub My name is main::MainSub My name is main::MainSub #### sub MainSub { my $name = shift; print "My name is $name\n"; } sub sub1 {MainSub('sub1')} sub sub2 {MainSub('sub2')} sub sub3 {MainSub('sub3')}