【发布时间】:2019-12-04 06:20:31
【问题描述】:
我正在运行一个脚本,该脚本计算数据库查询的内容并将结果以散列形式返回以进行更多处理。 不幸的是,似乎正在发生的事情是数组填满了数组,而不是它们被连接在一起。
我不确定这里发生了什么,就像我从 while 循环中删除它并只是手动定义要推送的数组时一样,它们都按预期被推送到我的密钥下的一个数组中。
while ( my $data = $query->fetchrow_hashref ) {
my $value = decode_json $data->{value};
my @array = $value->{array};
my %hash;
my $person = "Scott";
push @{$hash{$person}->{"arrays"}}, @array;
}
Dumper 导致以下结果:
'scott' => {
'arrays' => [
[
'stuff1', 'stuff2'
],
[
'stuff3','stuff4'
],
]
}
我希望该数组不会成为其他数组的嵌套,而只是一个包含 stuff\d 值的数组
【问题讨论】:
-
试试
my @array = @{ $value->{array} }而不是my @array = $value->{array} -
哇,非常感谢。我并不惊讶它是如此简单,但我还是有点迷失在这里。我猜想包装我认为是数组的东西实际上不是,它会改变上下文?
标签: arrays perl reference push