迭代一系列Perl Hashes

时间:2014-06-17 21:01:06

标签: json perl curl jira

我编写了一个perl脚本,该脚本访问JIRA REST API以获取与特定JQL查询匹配的问题列表。有时候你的结果只有一个问题,有时我会回来。

$client->GET(
$apiPath.$jql.$fieldRes,
$headers);

#a perl hash of results 
my $response = from_json($client->responseContent()); 

虽然$ response是一个perl哈希值,但如果我尝试深入查看哈希值,我就遇到了问题。

有一系列"问题"在哈希内。

我正在尝试使用" foreach"对于每个特定问题,但我一直收到错误:

foreach my $issues ($response->{'issues'})
{
      print STDERR Dumper($issues->{'key'});
}

...错误

Pseudo-hashes are deprecated at script.pl line #.
Argument "JIRA-10011" isn't numeric in hash element at script.pl line #.
Bad index while coercing array into hash at script.pl line #.

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

  

有一系列"问题"在哈希内。

您不能将数组放入Perl中的哈希值,这只适用于数组引用。因此,在使用foreach迭代哈希(ref)时需要取消引用它。

foreach my $issues ( @{ $response->{'issues'} } )
{
  print STDERR Dumper($issues->{'key'});
}

由于每次迭代都会遇到一个问题,因此您应该将$issues重命名为$issue,这样您以后就不会感到困惑。