It looks like a job for goto
After the goto, not even caller() will be able to tell that this routine was called first.
So if you goto &{'debug'}; after you shitfed $self out, you'll "call" your debug subroutine seemlessly, as if you were there in the first place. Be careful about unshifting or shifting the $self argument into @_ when you do that.
In reply to Re: Can caller() or the call stack be tricked?
by Eily
in thread Can caller() or the call stack be tricked?
by Ralesk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |