2014-12-05 4 views
2

Я работаю над модулем MooX, который должен добавить оболочку вокруг конструктора.Есть ли способ переопределить конструктор в Moo?

Я пробовал метод, модифицирующий или имеющий метод импорта, напрямую меняет *{"${target}::new"} без эффекта.

Так как я могу это сделать?

+0

Почему вы не можете использовать BUILD? – choroba

+0

Потому что я хочу переопределить, возвращает ли он объект такого типа. Это версия Moo [MooseX :: Failover] (https://metacpan.org/pod/MooseX::Failover). – Rob

ответ

1

Видимо, вокруг действительно работает:

package MyRole; 
use Moo::Role 

around new => sub { ... }; 

но роль, которая имеет вокруг должна быть потреблен после добавлены атрибуты, например,

package MyClass; 
use Moo; 

has attr1 => (...); 
with 'MyRole'; 
Смежные вопросы