#!/usr/bin/perl -w use strict; print "testing main\n"; x(); sub x { print "In sub x\n"; print " I am: ", WHOamI(), "\n"; SubLevel2(); } sub SubLevel2 { print "in sub SubLevel2\n"; print " I am: ", WHOamI(), "\n"; print " I was called by ", WHOwasI(),"\n"; } 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 __END__ #prints testing main In sub x I am: main::x in sub SubLevel2 I am: main::SubLevel2 I was called by main::x