给出下面两个哈希key示例,以下将产生不同的输出,取决于OrganizationName键是包含值还是Hash
示例1:
$VAR1 = {
'Address2' => {},
'OrganizationName' => 'EXISTS',
'Fax' => {}
};示例2:
$VAR1 = {
'Address2' => {},
'OrganizationName' => {},
'Fax' => {}
};对于第一个散列:
my $org = $hashref->{'OrganizationName'};
print $org;返回:OrganizationName
对于第二个散列:
my $org = $hashref->{'OrganizationName'};
print $org;返回:HASH(0x1ae17e0)
这是因为当“非空”键包含一个值时,“空”OrganizationName键包含一个散列。
那么,如何测试OrganizationName键是否包含哈希,如果不继续的话?我想这样做,而不通过循环在Hash中的键,因为有很多,这似乎是相当不必要的,只有一个键。
提前谢谢你的帮助。
发布于 2014-01-11 02:09:35
它不包含散列,它包含对散列的引用。您可以很容易地检查某个值是否是ref的引用。
if ( ref $hashref->{OrganizationName} ) {
print "OrganizationName contains a reference\n";
}
if ( ref $hashref->{OrganizationName} eq 'HASH' ) {
print "OrganizationName contains a reference to a hash\n";
}https://stackoverflow.com/questions/21057663
复制相似问题