Я понимаю, что это не всегда возможно для всех модулей MooseX, особенно когда модуль углубляется в мета-класс, где Moose и Mouse различаются.
Но этот вопрос возник, потому что иногда модуль MooseX неэквивалент в пространстве имен MouseX, и я обнаружил, что все еще могу использовать модуль MooseX в своих классах Mouse.Но я хочу задать этот вопрос в целом, даже если есть доступный эквивалент MouseX (допустим, я слишком ленив, чтобы установить MouseX, или версия MooseX более новая с новыми функциями).
Например, допустимо следующее:
package Foo;
use Mouse;
use MooseX::Types::Common::Numeric 'PositiveInt';
has 'bar' => (
is => 'rw',
isa => PositiveInt,
);
Когда я посмотрел на MouseX::Types::Common::Numeric
источник, это была почти точная копия MooseX::Types::Common::Numeric
, хотя были различия в MouseX :: Types, который является зависимостью.Поскольку это perl-код, особого выигрыша в производительности при использовании модуля MouseX также нет.
Так что, если у нас есть класс Mouse и выбор использования эквивалентных модулей MooseX и MouseX, по каким причинам мы должны выбратьВариант MouseX?В любом случае, почему у MouseX эквивалент?
Кстати, как мы можем связать это с Any::Moose
?