【发布时间】:2017-09-14 02:40:28
【问题描述】:
我有两个长度相等的数组,一个包含键,另一个包含值。
如何将它们变成一个哈希,我可以通过 hash{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}
它无法评估。也许我只是没有尝试以正确的方式访问它?
【问题讨论】:
-
哈希只是一个列表。如果您希望调试器以键/值形式显示它,您需要给它一个参考。
x \%hash. -
%hash{parser} 应该是 $hash{parser}。
-
更快、更简单:
my %hash; @hash{@key} = @values;