很抱歉出现这个语法问题。我找不到解决方案。 我想在 perl 中有一个散列数组,每个散列都有字符串和数组。 我正在尝试编写以下代码:
use strict;
my @arr = (
{ name => "aaa" , values => ("a1","a2") },
{ name => "bbb" , values => ("b1","b2","b3") }
);
foreach $a (@arr) {
my @cur_values = @{$a->{values}};
print("values of $a->{name} = @cur_values\n");
};
但这对我不起作用。我收到编译错误和警告(使用 perl -w)
a.pl 第 2 行的匿名哈希中的元素数量为奇数。 当 a.pl 第 9 行使用“严格引用”时,无法使用字符串(“a1”)作为 ARRAY 引用。
最佳答案
I want to have an array of hashs in perl
你不能。 Perl 中的数组仅包含标量。不过,{}
将创建一个哈希引用,它是一个标量,没有问题。
但是这个:
{ name => "aaa" , values => ("a1","a2") }
含义相同:
{ name => "aaa" , values => "a1", "a2" },
您需要一个 arrayref(这是一个标量),而不是值的列表。
{ name => "aaa" , values => ["a1","a2"] }
关于perl - 如何在perl中获得列表的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7515759/