gpt4 book ai didi

arrays - Perl 对象中的数组数组

转载 作者:行者123 更新时间:2023-12-02 20:39:36 29 4
gpt4 key购买 nike

我正在尝试在 Perl 对象中使用数组的数组,但仍然不明白它是如何工作的。

这是构造函数:

sub new {
my $class = shift;
my $self = {};
$self->{AoA} = [];
bless($self, $class);
return $self;
}

这是将内容插入 AoA 的代码部分:

push (@{$self->{AoA}}[$row], $stuff);

我仍然找不到在构造函数中定义数组数组的任何内容。

最佳答案

您不需要在构造函数中定义 AoA - 只需要在最顶层的 arrayref 中定义即可。就祝福哈希而言,AoA 只是一个数组引用。

你的构造函数是完美的。

要插入,您需要做两件事:

# Make sure the row exists as an arrayref:
$self->{AoA}->[$row] ||= []; # initialize to empty array reference if not there.
# Add to existing row:
push @{ $self->{AoA}->[$row] }, $stuff;

或者,如果您要添加已知索引元素,只需

$self->{AoA}->[$row]->[$column] = $stuff;

您在执行 push @{$self->{AoA}}[$row] 时遇到的问题是您过早取消引用数组 1 级别。

关于arrays - Perl 对象中的数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354334/

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