如何比较2个哈希子键是否相互匹配?
%hash={'Key1' => {
'Sub_key1' => [ 'value' ]
}
'key2' => {
'Sub_key2' => [ 'value' ]
}
}
答案 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";
}
因为哈希中只有两个子键。如果还有更多,你应该遍历这个数组。