我對Perl很新穎,需要快速完成任務。任何幫助表示讚賞!在Perl中比較數值的兩個哈希值按價值比較Perl
我有陣列的兩個哈希如下:
Hash 1
-------
w: ['A','B','C']
e: ['P','Q','R']
Hash 2
-------
w:['A','B','C']
e:['P','Q','O']
r:['S','T']
語境:
我想找到在同一個密鑰(例如哈希1沒有 值'值型差分O'從相同的密鑰'e'的哈希2得到。
找出密鑰的不同(例如'r'不存在於散列1中。
我把一些代碼放在一起,但它檢查兩個哈希完整行的確切值。例如,如果我在散列1中爲密鑰w和'B','C'中的'A','B','C',散列2中的'A'爲相同的密鑰,如果標記差異。我想按價值比較價值 -
以下代碼比較兩個散列os數組。所以從上面的例子中,散列1中的A,B,C不等於散列2中的B,A,C。但是我想檢查單個項的存在,並且不用擔心順序。
for (keys %hash2)
{
unless (exists $hash1{$_}) # Checks for mismatches in keys
{
print "$_: Key mismatch $_ received \n";
next;
}
if ($hash2{$_} eq $hash1{$_}) #Compares two lines exactly
{
print "$_: No mismatch \n";
}
else
{
print "$_: Value mismatch for key $_ \n"; #Difference in Value
}
}
請格式化您的問題。 (1)正確縮進代碼,以便使用代碼格式呈現代碼(和* only *代碼)。 (2)當你正在討論一個數組時,不要使用hashref文字語法'{}',*當你正在討論一個哈希時使用它。 – Quentin 2012-07-30 16:43:06