main,U:\develsv\ARTS\playground\callertest.pl,16,main::f,1,,,,2,UUUUUU
+UUUUU
That is, it says "the caller is main::f". This is _format_caller's caller, NOT f's caller.
Actually that's why I had concluded that counting would start at 1. And indeed, from the
command line:
perl -lwe 'sub a{print((caller 0)[3])};sub b{a()};sub c{b()}; c'
gives main::a (that is, caller 0 says "who I am", i.e. which function is invoking caller).
perl -lwe 'sub a{print((caller 1)[3])};sub b{a()};sub c{b()}; c'
gives main::b (that is, caller 1 says who has called me)
perl -lwe 'sub a{print((caller 2)[3])};sub b{a()};sub c{b()}; c'
gives main::c (that is, the caller of main::b), but for
perl -lwe 'sub a{print((caller 3)[3])};sub b{a()};sub c{b()}; c'
I would have expected to get information about the caller of main::c, which
is the main program (not the shell), but there is none.
--
Ronald Fischer <ynnor@mm.st>
|