gpt4 book ai didi

perl - 访问 Moose 阵列

转载 作者:行者123 更新时间:2023-12-01 09:08:55 26 4
gpt4 key购买 nike

无法弄清楚推送到 Moose 数组的语法(我确信这很明显,而且我很愚蠢)。这是 this question 的延续.在我看来,对于我的具体情况,我需要的不仅仅是一个简单的值。尝试使用 Moose 式的方式来实现它(也许这是错误的?)但我显然做得不对。

use Moose::Role;
has 'tid_stack' => (
traits => ['Array'],
is => 'rw',
isa => 'ArrayRef[Str]',
default => sub { [] },
);


around 'process' => sub {
my $orig = shift;
my $self = shift;
my ( $template ) = @_;

$self->tid_stack->push( get_hrtid( $template ) );

$self->$orig(@_)
};

最佳答案

您误解了 traits => ['Array'] 的作用。这允许您设置 handles 方法。它不允许你直接调用像 push 这样的方法。为此,您需要 使用 Moose::Autobox(并且您不需要 Array 特征)。

或者你可以这样做:

has 'tid_stack' => (
traits => ['Array'],
is => 'rw',
isa => 'ArrayRef[Str]',
default => sub { [] },
handles => {
push_tid => 'push',
},
);

...

$self->push_tid( get_hrtid( $template ) );

关于perl - 访问 Moose 阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com