У меня возникает странная проблема с Attribute :: Handlers, которая выглядит как какая-то ошибка:
package MyPackage;
use Attribute::Handlers;
sub UNIVERSAL::foo :ATTR(CODE) {
...
}
При использовании в MyPackage или из основного пакета сценария, использующего MyPackage обработчик foo вызывается всякий раз, когда компилятор встречает функцию вида
sub bar:foo {
...
}
. Однако у меня есть другой пакет, в отдельном файле .pm, который использует MyPackage. Компилятор принимает атрибут ": foo", но обработчик не вызывается.
Я попытался написать функцию импорта в MyPackage, которая экспортирует обработчик foo в пространство имен вызывающего, но это не похоже чтобы помочь.
Кто-нибудь может понять это? Последние несколько дней я ломал голову над тем, как это исправить.