【发布时间】:2014-07-17 12:57:03
【问题描述】:
我在 %ARGS 中有一个 perl 哈希值传递给我。我必须实现这样的功能,如果对于所需的最小键集(比如 key1、key2、key3、key4、key5),哈希中有多个值,那么我需要获取第一个值并用最小集填充哈希键。
目前我有。
while (my ($key, $value) = each(%ARGS)) {
#check if key is equal to the keys from the set.
if (ref($value) ) {
#means its a nested key value pair.
extract first value and put it for the key
我如何确定这一点。任何指针都会很有用
【问题讨论】:
-
use Data::Dumper; print Dumper(\%ARGS);查看 %ARGS 的结构。然后你可以给我们看一个相同格式的例子。 -
您的任务是将选定的键/值对复制到另一个散列吗?如果是这样,为什么不直接遍历选定的键呢?
for (qw(key1 key2 ...)) -
不,我应该用最少的键集修改相同的哈希值。
-
你的意思是你应该从
%ARGV中删除除最小集合key1, key2, ...之外的所有键? -
是的,这正是我需要做的