perl - How can I get the calling method which inherit from other package -


i want calling method's name. try caller, works fine in cases. result not expected when method inherit parent package. following example:

package caller; sub output_caller { #output calling method's name     @stacks = caller(1);     print $stacks[3]; }  package foo; sub foo {     caller::output_caller(); }  package bar; use base 'foo';  bar->foo(); 

the output

foo::foo  

which expected

bar::foo 

is possible bar::foo?

use carp qw(confess) gets close. return

at c:\src_test\perl\testmost\callertest.pl line 11.     foo::foo('bar') called @ c:\src_test\perl\testmost\callertest.pl line 18 foo::foo 

from modified script

package caller; sub output_caller { #output calling method's name     @stacks = caller(1);     print $stacks[3]; }  package foo; use carp qw(cluck); sub foo {     cluck();     caller::output_caller(); }  package bar; use base 'foo';  bar->foo(); 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -