2014-02-12 48 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"; 
} 

由於散列中只有兩個子鍵。如果還有更多,你應該遍歷這個數組。