我正在尝试在Perl对象中使用数组数组,但仍然没有得到它的工作原理。
这是构造函数:
sub new {
my $class = shift;
my $self = {};
$self->{AoA} = [];
bless($self, $class);
return $self;
}
以下是将内容插入AoA的代码部分:
push (@{$self->{AoA}}[$row], $stuff);
我仍然无法在构造函数中定义数组数组的路上找到任何东西。
答案 0 :(得分:4)
您不需要在构造函数中定义AoA - 仅仅是最顶层的arrayref。就受祝福的哈希而言,AoA仅仅是一个arrayref。
你的构造函数很完美。
要插入,您可以做两件事:
# 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;
或者,如果要添加known-index元素,只需
$self->{AoA}->[$row]->[$column] = $stuff;
您执行push @{$self->{AoA}}[$row]
时遇到的问题是您过早地取消引用了数组1级别。