> If you are geting errors in the call_method() I think adding G_EVAL > will provide _a_ level for caller to find.
Hmm... Well, the stack got deeper. But as I look at, it appears to me that maybe it was deep enough already, just not useful. I'm afraid I confused the issue in my orignal example by passing caller() '1', when I should probably have passed it '0'. At any rate, the zeroth frame has some useful data, e.g. the qualified sub name. But for carp to work correctly, I need to replace the '/dev/null' and the line number (reportedly '0' here) with more helpful data. Is it practical to manipulate the these data in order to plug in some arbitrary values? thanks for looking =========================================================================== "caller(1)" $VAR1 = [ 'main', '/dev/null', 0, '(eval)', 0, undef, undef, undef, 0, '[non-ascii]' ]; "caller(0)" $VAR1 = [ 'main', '/dev/null', 0, 'Ex::do_something', 1, 0, undef, undef, 0, '[non-ascii]' ]; "caller()" $VAR1 = [ 'main', '/dev/null', 0 ]; "warn"ing at lib/Ex.pm line 23. "carp"ing at /dev/null line 0 you gave me "some arbitrary data"