在我的对象构造函数中,我有声明同时初始化两个属性:
($self->{token}, $self->{token_start}) = $self->_get_authorized_token();
所以我得到了令牌,它的开始时间在一个声明中。
现在我尝试移植我的模块以使用 Moo(se) 在这里我不知道我应该如何同时设置这两个绑定属性?一些伪代码是这样的:
has qw/token token_start/ => (
is => 'rw',
default => shift->_get_authorized_token();
);
但是如何以 Moo(se)ish 的方式声明 2 个绑定属性?
编辑。我展示了方法的代码_get_authorized_token
,也许它会带来一些想法:
sub _get_authorized_token {
my $self = shift;
my $postData = { 'apikey' => $self->{key} };
my $url = $self->{base_url} . '/seller';
my $xml = $self->_post(url => $url,
postdata => $postData,
);
my $ref = XMLin($xml, SuppressEmpty => '' );
my $time = $ref->{Notification_Datetime};
my $token = $ref->{Notification_Data}{body}{token};
return ($token, $time);
}