【发布时间】:2010-11-12 18:00:10
【问题描述】:
我写了一个 Moose 对象类,它扩展了另一个 Moose 对象类:
package MySubClass;
use Moose;
extends MySuperClass;
我想在对象实例化的基础上自动构建一个属性:
has 'id' => (
is => 'ro',
isa => 'Str',
builder => '_build_id',
init_arg => undef,
);
sub _build_id {
my $self = shift;
# both ssn and bnn are attributes of MySuperClass
return $self->ssn . $self->bnn;
}
除非我将id 设置为惰性,否则这不起作用。为什么?
extending 对象的构造是如何完成的?
【问题讨论】: