我可以将Moose属性“写一次”吗?

时间:2010-11-12 13:29:05

标签: perl moose

我希望有一个非必需的Moose属性,只能设置一次。

如果我使用is => 'ro'我必须在创建对象时设置属性,但我希望能够在之后添加它(只要它尚未设置)。

2 个答案:

答案 0 :(得分:12)

答案 1 :(得分:5)

使用方法修饰符:

has 'attr' => (
    is => 'rw',
    predicate => 'is_set',
    ...
};   

before 'attr' => sub {
     my $self = shift;
     die 'attr already set' if $self->is_set;
};