in reply to Parent Subroutine

sub whoami { (caller(1))[3] }; #returns name of the sub that called # this sub sub whowasi { (caller(2))[3] }; #returns name of the parent of the # sub that called this sub do_calc (1,2,3); sub do_calc { print "In subroutine: do_calc()\n"; print "I am: ",whoami,"\n\n"; do_sub_calc(); } sub do_sub_calc { print "In subroutine do_sub_calc()\n"; print "I am: ", whoami(),"\n"; print "I was called by: ", whowasi(),"\n"; } __END__ prints: In subroutine: do_calc() I am: main::do_calc In subroutine do_sub_calc() I am: main::do_sub_calc I was called by: main::do_calc