2

我对 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)并将其存储在哈希中,如果 hashref 用逗号连接很容易,因为它是一个分号尽管经过多次试验,这对我来说真的很难,请帮助..

4

2 回答 2

5

您误解了Data::Dumper. 您需要将数组 ref 发送到 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
          }
        ];
于 2012-11-30T11:36:19.200 回答
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 ...

}
于 2012-11-30T19:12:14.893 回答