【发布时间】:2012-08-07 19:24:14
【问题描述】:
我有这个:
%lookup = (
'Shelf' => { storage_types => 'Flat, Default' },
'Locker' => { storage_types => 'Valuable' },
);
我想得到这个:
%reverse_lookup = (
'Flat' => 'Shelf',
'Default' => 'Shelf',
'Valuable' => 'Locker',
);
例如,我可以在测试中循环遍历存储类型,并检查子例程是否返回正确的位置。
我无法理解多列表扩展部分。
%reverse_lookup = map { split(/,\s*/, $lookup{$_}) => $_ } keys %lookup; # wrong
我想简洁地使用 map 或类似方法,而不是 foreach 循环。
【问题讨论】:
-
如果你有
%lookup = ('Locker' => { storage_types => 'Valuable' }, 'Vault' => { storage_types => 'Valuable' }),你想发生什么?
标签: algorithm perl map foreach hashmap