如何比较哈希子键

时间:2014-02-12 13:14:47

标签: perl hash key

如何比较2个哈希子键是否相互匹配?

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

1 个答案:

答案 0 :(得分:1)

首先,您定义的哈希语法不正确。它应该是这样的:

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

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

                    }
 );

因为您没有使用哈希引用(例如$ hash = {....})。 现在,要遍历您必须执行的子项:

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

我使用了数组,因为您可能希望在其中存储两个以上的值,然后比较它们。无论如何,您可以这样做:

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

因为哈希中只有两个子键。如果还有更多,你应该遍历这个数组。