我对perl哈希有疑问,对此有任何建议非常感谢 - 下面只是代码片段 -
my @results = $sp->get_list_items($listid, $viewid);
print Dumper @results;
输出是这样的,
$VAR1 = { a => 1, b => 2, g => 1, };
$VAR2 = { c => 1, d => 2, g => 1, b => 1434, h => 2 };
$VAR3 = { e => 1, a => 232, f => 2 };
$VAR4 = { g => 1, h => 2, a => 5, b => 19 };
注意:它是一个分号,而不是哈希引用之间的逗号!!我的任务是从每个hashref收集a和b值(如果a或b在hashref中不存在,则将其替换为0)并将其存储在散列中,如果hashrefs由逗号连接,则很容易,因为它是一个分号尽管经过多次试验,这对我来说真的很难,请帮助..
答案 0 :(得分:5)
您误解了Data::Dumper
的输出。您需要将数组引用发送到Dumper函数:
print Dumper \@results;
否则,您将发送要单独打印的数组中的元素列表。
你应该得到这样的输出:
$VAR1 = [
{
'a' => 1,
'g' => 1,
'b' => 2
},
{
'c' => 1,
'h' => 2,
'b' => 1434,
'g' => 1,
'd' => 2
},
{
'e' => 1,
'a' => 232,
'f' => 2
},
{
'a' => 5,
'h' => 2,
'b' => 19,
'g' => 1
}
];
答案 1 :(得分:0)
不确定您希望如何'将a和b值存储在散列中',但这应该为您提供一些开始:
for my $result (@results) {
my $a_val = $result->{a} || 0;
my $b_val = $result->{a} || 0;
# now do something with $a_val and $b_val ...
}