【发布时间】:2023-03-31 00:55:01
【问题描述】:
我有几个包:
package FOO;
use Moose;
has 'obj' => (is=>'ro');
sub hash {
my $self = shift;
return $self->make_hash($self->obj};
}
和另一个扩展 FOO 的包:
package FOOBAR;
use Moose;
extends 'FOO';
has [qw/val1 val2/] => (is => 'rw');
sub BUILD {
my ($self) = @_;
$self->val1($self->hash->{val1});
$self->val2($self->hash->{val2});
}
基本上我想做FOOBAR->new(obj=>$obj); 并使用从$obj 生成的散列来填充FOOBAR 中指定的属性(大约20 个属性)
像这样使用“BUILD”是解决问题的好方法吗?
【问题讨论】: