Perl 我可以做一个驼鹿属性吗;写一次;?

Perl 我可以做一个驼鹿属性吗;写一次;?,perl,moose,Perl,Moose,我想有一个非必需的驼鹿属性,只能设置一次 如果我使用is=>'ro'我必须在创建对象时设置属性,但我希望能够在之后添加它(只要它尚未设置)。使用方法修饰符: has 'attr' => ( is => 'rw', predicate => 'is_set', ... }; before 'attr' => sub { my $self = shift; die 'attr already set' if $self-&g

我想有一个非必需的驼鹿属性,只能设置一次

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

使用方法修饰符:

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

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

您可以使用“around”停止方法调用,这样您就不必死也不必使用die,请永远不要使用die,die是邪恶的,应该死。用呱呱声,或者坦白。库德尼尼亚:这要看情况。你可能想保释,让打电话的人来陷害它。这要看情况而定。使用
模具
有充分的理由。