我有以下hashref:
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::Dumper打印数据结构hashref会得到以下输出:-
$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)
};发布于 2012-09-29 01:16:45
您定义的哈希是错误的。它解释了这个:
'a'=>(1,2,3,4),
'b'=>(5,6,7,8)作为10个元素的简单列表。(请记住,散列也可以使用简单列表声明,=>运算符是可选的。)相反,使用方括号将值转换为arrayref字面量:
'a'=>[1,2,3,4],
'b'=>[5,6,7,8]哪个Data::Dumper应该调用:
$VAR1 = {
'a' => [1,2,3,4],
'b' => [5,6,7,8]
};https://stackoverflow.com/questions/12644402
复制相似问题