Yes. There are quite a few variations of "privateness" documented in theDamian's excellent Object Oriented Perl. You can check the file and line number of caller, for example.

However, the moment you do that, I would not want to maintain your code. Every attempt I've seen at privacy has made the code more unmaintainable.

Just name your "private" methods with a leading underscore, and put "do not call outside of this class"
in a comment. People will get the idea, and they deserve what they get when they violate it. Why is that so hard to understand?