在Moops中可以使用MooseX元属性吗?
请考虑下面的Moose示例代码:
use v5.14;
use strict;
use warnings;
package TraitTest;
use Moose;
with 'MooseX::Getopt';
has opt1 => (
traits => ['Getopt'],
is => 'ro',
isa => 'Bool',
cmd_aliases => ['o']
);
1;
package main;
print TraitTest->new_with_options()->opt1 ? "yes\n" : "no\n";我试着把这个转变成这样:
use v5.14;
use strict;
use warnings;
use Moops;
class TraitTest
with MooseX::Getopt
{
has opt1 => (
# metaclass => 'Getopt', # also not working
traits => ['Getopt'],
is => 'ro',
isa => 'Bool',
cmd_aliases => ['o']
);
}
print TraitTest->new_with_options()->opt1 ? "yes\n" : "no\n";发布于 2014-02-03 18:09:02
Moops类是由Moo支持的,而不是默认的Moose类。因此,MooseX扩展通常不能工作。
然而,可以使用Moose代替Moo:
class TraitTest with MooseX::Getopt using Moose {
...
}https://stackoverflow.com/questions/21531822
复制相似问题