作者:马仔盛世焚花 | 来源:互联网 | 2023-02-06 13:22
我有两个相等长度的数组,一个包含键,另一个包含值.
如何将它们组合成一个哈希,我可以通过哈希{key}访问它并获取值.
我试过了
my %hash = map { $key[$_], $values[$_] } 0..$#key;
但它有点保存在一个长列表中的所有内容,其中每个第二个值都是从调试器中可以看到的值.
DB<104> x %hash
0 'linking_parameter_1'
1 '$$SHIBBOLETH'
2 'service_type'
3 'getFullTxt'
4 'crossref_supported'
5 'Yes'
6 'parser'
7 'Bulk::BULK'
8 'internal_name'
9 'ELSEVIER_SD_EBOOK-COMPLETE_COLLECTION_1995-20065'
10 'object_lookup'
11 'yes'
12 'linking_level'
13 'BOOK'
14 'displayer'
15 'FT::NO_FILL_IN'
16 'parse_param'
17 ''
当我输入
x %hash{parser}
它不能评估.也许我只是不想以正确的方式访问它?
1> Borodin..:
使用哈希切片来定义它
my %hash;
@hash{@key} = @values;
但是调试器的输出是您应该期望的,因为散列在传递到键/值列表之前被扩展x
.要查看复合数据的内部结构,你应该传递一个参考,以x
DB<104> x \%hash
0 HASH(0xe7c88880)
'linking_parameter_1' => '$$SHIBBOLETH'
'service_type' => 'getFullTxt'
'crossref_supported' => 'Yes'
'parser' => 'Bulk::BULK'
'internal_name' => 'ELSEVIER_SD_EBOOK-COMPLETE_COLLECTION_1995-20065'
'object_lookup' => 'yes'
'linking_level' => 'BOOK'
'displayer' => 'FT::NO_FILL_IN'
'parse_param' => ''