###############################################################################
# Attributes
###############################################################################
has 'primary_cluster' => (
is => 'ro',
isa => 'Str',
required => TRUE,
);
has 'secondary_cluster' => (
is => 'ro',
isa => 'Str',
required => FALSE,
default => sub {$_[0]->primary_cluster},
);
has '_connection' => (
is => 'ro',
required => FALSE,
init_arg => undef,
default => sub {
Core::mConnection->new(
primary_cluster => $_[0]->primary_cluster,
secondary_cluster => $_[0]->secondary_cluster,
);
},
);
Я пытаюсь получить частный атрибут _connection
, который использует другие атрибуты для создания объекта mConnection
. Проблема, с которой я столкнулся, заключается в том, что внутри подпрограммы по умолчанию _connection
, $_[0]->primary_cluster
всегда является undef. Есть ли способ гарантировать порядок создания атрибута или есть лучший способ сделать это?Как один дополнительный атрибут атрибута по умолчанию может быть связан с Moose?
Я не хочу, чтобы этот атрибут был ленивым; Мне нужно, чтобы он был создан, когда объект построен.