gpt4 book ai didi

arrays - 哈希键仅存储循环的最后一个元素

转载 作者:行者123 更新时间:2023-12-05 02:25:27 28 4
gpt4 key购买 nike

我试图将数组值存储在散列中,但散列键仅存储 for 循环中数组的最后一个值。

我的预期输出是,“STORE”键应该包含所有数组元素。我知道几乎没有其他方法可以将数组值存储在散列中,但我很好奇为什么下面的脚本不起作用。

use strict;
use warnings;
use Data::Dumper;

my @array = (1,2,3);
my %record;

for my $array(@array) {
$record{"STORE"} = $array;
}
print Dumper \%record;

最佳答案

散列只有数组中的最后一个值,因为您不断覆盖 for 循环中的值。

存储数组中所有值的一种方法是:

use strict;
use warnings;
use Data::Dumper;

my @array = (1,2,3);
my %record;

for my $array (@array) {
push @{ $record{"STORE"} }, $array;
}

print Dumper \%record;

这会将数组存储为引用。

$VAR1 = {
'STORE' => [
1,
2,
3
]
};

另一种存储整个数组的方法是将其分配给一个数组引用:

my @array = (1,2,3);
my %record;

$record{"STORE"} = [@array];

print Dumper \%record;

引用perldsc

关于arrays - 哈希键仅存储循环的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74591219/

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