Можно попробовать использовать аспектно-ориентированный подход , но для этого требуется установить модуль CPAN, Aspect .
Чтобы захватить вызовы определенного метода / функции, вы определяете pointcut (взятый из Aspect POD):
$pointcut = call qr/^Person::[gs]et_/; # defines a collection of events
Затем определите код, который нужно принять перед вызовом:
$before = before {
print "g/set will soon be called";
} $pointcut;
Хотя я не уверен, позволяет ли модуль Aspect перехватывать вызовы в пространстве имен CORE :: *.