如何在perl中迭代我的哈希值

时间:2017-04-18 17:19:57

标签: perl hash reference

我在$ target_parser_list

中保存了一个哈希值

在调试器中,这就是我所拥有的

   DB<3> x  $target_parser_list
0  HASH(0xd570d28)
   'ASCE::ASCE' => undef
   'Bulk::BULK' => undef
   'Bulk::BULKdoi' => undef
   'CQ::Researcher' => undef
   'Highwire::OUP' => undef
   'Highwire::highwire' => undef
   'INFORMIT::INFORMIT' => undef

但是当我尝试迭代它时

foreach my $key(keys %target_parser_list ){
    print $key;

}

我收到错误

Global symbol "%target_parser_list" requires explicit package name

当我尝试将其更改为

foreach my $key(keys $target_parser_list ){

然后我得到一个错误,说我需要一个哈希,

Type of arg 1 to keys must be hash (not private variable

如果我将$ target_parset_list变量更改为hash

my %target_parser_list =  $target_parser_list_conf->getSection('target_parser') || '';

然后输出

DB<2> x  %target_parser_list
0  'HASH(0xc758888)'
1  undef

当我打印我的钥匙时

DB<3> x $key
0  'HASH(0xd5353d0)'

请告诉我如何迭代我的键,就像你在开始时看到的那样。

0 个答案:

没有答案