我有一个现有的数组,我希望在哈希中添加一个值.我知道你可以使用数组作为值,但是看不到分配现有数组的方法.我基本上想去:
$hash{fieldName} = @myArray;
Run Code Online (Sandbox Code Playgroud)
只有这显然不起作用!帮助赞赏!
Luk*_*ský 12
您只能在散列/数组中存储标量值.你需要使用:
$hash{fieldName} = \@myArray;
Run Code Online (Sandbox Code Playgroud)
存储它,并:
my @myOtherArray = @{$hash{fieldName}};
Run Code Online (Sandbox Code Playgroud)
把它拿回来.它通过使用对数组的引用来解决标量需求.
由于没有人提到它,你的代码所做的如下:
由于您分配了哈希的元素,因此赋值位于标量上下文中
在标量上下文中,数组的值变为数组的大小
所以,值$hash{fieldName}变得等于数组的大小(scalar @myarray)