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
|