我的Moose课程消耗了一个我不允许改变的角色.该角色定义具有默认值的属性.我需要我的类具有该属性,但具有不同的默认值.
那可能吗?
我能想到的就是用我自己的一些代码包围"new"方法,如下所示:
around new => sub {
my ($orig, $self) = (shift, shift);
return $self->$orig(@_, the_attribute => $new_value);
}
Run Code Online (Sandbox Code Playgroud)
但我不确定周围的新品是否有效,并且也希望更优雅.
更好,更简单的方法是在你的课堂上写这个:
has '+the_attribute' => (
default => sub{1},
}
Run Code Online (Sandbox Code Playgroud)
has
使用a +
,您只能覆盖属性的特定属性.
比周围的BUILDARGS简单得多.