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