我在$ 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)'
请告诉我如何迭代我的键,就像你在开始时看到的那样。