in reply to Getting the name of the subroutine called. There is a way for a clone references?!
I cant see anything in the caller return list to differentiate the subs ... and my first knee-jerk of a class that overloads the '()' operator wont work because in Perl you cant overload '()' (anyone know why C++ supports this and Perl doesn't ??)... perhaps search other references for FUNCTORS, function objects, whose only public method is the () operator. C++ has many examples, see STL.
CPAN gives me hits for some modules on a Prolog's emulation - but that is (probably) not going to help.