Perl Moose,如何初始化哈希示例属性

kokeuurv  于 2022-11-15  发布在  Perl
关注(0)|答案(1)|浏览(149)

我特灵做的是:
我正在写一个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的新手,如果我在文档中遗漏了什么,请原谅。

vfwfrxfs

vfwfrxfs1#

Moose不会将Hash定义为型别(请参阅Moose::Manual::Types)。
但是它定义了HashRef

return \%hash

并将类型约束更改为

isa => 'HashRef',

它仍然定义了一个示例属性,而不是类属性。要定义类属性,请使用MooseX::ClassAttribute

相关问题