我有以下哈希文献:-
my $hashref = {'a'=>(1,2,3,4),
'b'=>(5,6,7,8)};
然后我使用以下来打印键(即"a"和"b"):-
foreach (keys %$hashref){
print "n".$_."n";
}
这将打印以下输出:-
4
a
7
2
5
尝试使用 Data::D umper 打印数据结构哈希引用会给出以下输出:-
$VAR1 = {
'4' => 'b',
'a' => 1,
'7' => 8,
'2' => 3,
'5' => 6
};
我的问题是:-
1)如何打印正确的键,即"a"和"b"。2)为什么数据结构看起来像上面输出中的结构而不是:-
$VAR1 = {
'a' => (1,2,3,4),
'b' => (5,6,7,8)
};
你定义哈希是错误的。它对此进行了解释:
'a'=>(1,2,3,4),
'b'=>(5,6,7,8)
作为 10 个元素的简单列表。(请记住,哈希也可以使用简单列表声明,=>
运算符是可选的。相反,请使用方括号将值转换为 arrayref 文本:
'a'=>[1,2,3,4],
'b'=>[5,6,7,8]
哪个数据::D umper应该调用:
$VAR1 = {
'a' => [1,2,3,4],
'b' => [5,6,7,8]
};