我特灵做的是:
我正在写一个perlMoose类,我想有一个类属性,它是一个哈希值,并在构建时初始化为默认值。
我的尝试:
has sweep_prop_configuration => (
is=>'rw',
isa => 'Hash',
reader => 'sweep_prop_configuration',
writer => '_sweep_prop_configuration',
builder => '_build_sweep_prop_configuration',
predicate => 'has_sweep_prop_configuration',
);
sub _build_sweep_prop_configuration {
my $self = shift;
my %hash;
$hash{point_number}=0;
$hash{number_of_sweep}=0;
$hash{backwards}=-1;
$hash{at_end}=-1;
$hash{at_end_val}=0;
$hash{save_all}=-1;
return %hash;
}
总的来说,我是Moose和Perl的新手,如果我在文档中遗漏了什么,请原谅。
1条答案
按热度按时间vfwfrxfs1#
Moose不会将
Hash
定义为型别(请参阅Moose::Manual::Types)。但是它定义了
HashRef
。并将类型约束更改为
它仍然定义了一个示例属性,而不是类属性。要定义类属性,请使用MooseX::ClassAttribute。