我希望有一个非必需的Moose属性,只能设置一次。
如果我使用is => 'ro'
我必须在创建对象时设置属性,但我希望能够在之后添加它(只要它尚未设置)。
答案 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;
};