如何构建所有懒惰的Moose功能?

Dav*_*d B 6 perl moose

我在Moose对象中有一堆懒惰的功能.

一些建筑商需要一些时间来完成.

我想nvoke所有构建器(转储"完整"对象).我可以一次性构建所有延迟功能,还是必须手动调用每个功能以使其运行?

hob*_*bbs 6

如果你想拥有构建器的"懒惰"属性,但确保在new返回之前构造它们的值,通常要做的就是调用访问器BUILD.

sub BUILD {
    my ($self) = @_;

    $self->foo;
    $self->bar;
}
Run Code Online (Sandbox Code Playgroud)

足以完成工作,但最好添加一条评论,并向那些不懂成语的人解释这个看似无用的代码.