0
鑑於下面2個hashref實施例下面將產品不同的輸出取決於單位名稱鍵是否包含一個值或一個Hash
的Perl:檢查是否hashref關鍵點的值或另一個hashref
實施例1:
$VAR1 = {
'Address2' => {},
'OrganizationName' => 'EXISTS',
'Fax' => {}
};
實施例2:
$VAR1 = {
'Address2' => {},
'OrganizationName' => {},
'Fax' => {}
};
對於第一散列:
my $org = $hashref->{'OrganizationName'};
print $org;
返回:單位名稱
對於第二散列:
my $org = $hashref->{'OrganizationName'};
print $org;
返回:HASH(0x1ae17e0)
這是因爲當「非空」鍵cont時,「空」OrganizationName鍵包含散列是一個價值。
那麼如何測試OrganizationName鍵是否包含散列,如果不能繼續?我想這樣做,而不需要循環通過Hash
中的密鑰,因爲有很多,而且對於只有一個密鑰似乎是不必要的。
在此先感謝您的幫助。
很好的答案。學到了新東西,解釋非常清楚。非常感謝你! – MattSizzle
'if(ref $ hashref - > {OrganizationName} eq'HASH')'對於hashref測試已經足夠了。 –
@mpapec如果它不是ref,那麼會將一個字符串與'undef'進行比較的警告。假設你已經啓用了'使用警告'。 – jordanm