This cannot be done easily I'm afraid as when you alias globs they merely point to the other glob (or in this case the subroutine). So when you call the aliased subroutine there's no difference to the the call except the name that you use (so
caller() is useless). You can probably get the information using
DB or one of the
B:: modules though, but that would seem overkill in this case.
A simpler technique may be just to have a base sub and then wrap the other subs around it e.g
sub base { return "doing stuff" }
sub foo { return base(). " in foo\n" }
local *bar = sub { return base(). " in bar\n" };
foo(), bar();
__output__
doing stuff in foo
doing stuff in bar
Simpler still use one of the
Hook:: modules, or just take
Zaxo's advice and use the ever-handy
File::Spec.
HTH
_________
broquaint