Я хочу создать полную иерархию объектов из hashref БЕЗ использования BUILDARGS. Есть ли возможный и простой способ сделать это?Автоматически создавать объект атрибута в perl Moose без использования BUILDARGS
#!/usr/bin/perl
use v5.14;
use strict;
use warnings;
{
package Obj1;
use v5.14;
use strict;
use warnings;
use Moose;
has 'backend' => (
is => 'ro',
isa => 'Obj2',
required => 1,
);
no Moose;
__PACKAGE__->meta->make_immutable;
1;
}
{
package Obj2;
use v5.14;
use strict;
use warnings;
use Moose;
has 'flag' => (
is => 'ro',
isa => 'Bool',
required => 1,
);
no Moose;
__PACKAGE__->meta->make_immutable;
1;
}
my $data = {
backend => {
flag => 1
}
};
my $s = Obj1->new($data);
say $s->backend->flag;
До сих пор я использовал BUILDARGS, но я предполагаю, что это может быть несколько автоматизирован, не так ли? Вот простой пример: в моем коде есть более глубокая иерархия, и было бы очень приятно, если бы я мог прекратить писать BUILDARGS для каждого класса.