2014-02-12 49 views
-2

如何比较2个哈希子键是否与eachother匹配?如何比较哈希子键

%hash={'Key1' => { 
        'Sub_key1' => [ 'value' ] 
       } 
     'key2' => { 
        'Sub_key2' => [ 'value' ] 
       } 
     } 
+3

匹配如何?字符串,数字,区分大小写? – TLP

+0

此外,您应该更努力地改进缩进,以便您的代码更具可读性。不只是出于对帮助你的人的尊重,而是出于你自己的利益。 – TLP

+0

Stringwise,我试过的样子看起来真的很愚蠢,我不知道它会有帮助 – PYPL

回答

1

首先,你定义的散列没有正确的语法。它应该是这样的:

%hash =('Key1' => { 
         'Sub_key1' => [ 'value' ] 
        }, 

      'key2' => { 
         'Sub_key2' => [ 'value' ] 

        } 
); 

因为你不使用散列引用(如$哈希= {....})。 现在,通过子项来迭代你要做的:

@array =(); 
foreach $key (keys %hash){ 
    foreach $subkey (keys %{$hash{$key}}) { 
     push(@array, $subkey); 
    } 
} 

我用数组,因为你可能要两个以上的值存储在里面,然后比较them.Anyway,那么你可以做:

if ($array[0] eq $array[1]){ 
    print "Match"; 
} 

由于散列中只有两个子键。如果还有更多,你应该遍历这个数组。