首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl:检查hashref键是否指向某个值或另一个hashref

Perl:检查hashref键是否指向某个值或另一个hashref
EN

Stack Overflow用户
提问于 2014-01-11 02:00:45
回答 1查看 897关注 0票数 0

给出下面两个哈希key示例,以下将产生不同的输出,取决于OrganizationName键是包含值还是Hash

示例1:

代码语言:javascript
复制
$VAR1 = {
          'Address2' => {},
          'OrganizationName' => 'EXISTS',
          'Fax' => {}
        };

示例2:

代码语言:javascript
复制
$VAR1 = {
          'Address2' => {},
          'OrganizationName' => {},
          'Fax' => {}
        };

对于第一个散列:

代码语言:javascript
复制
my $org = $hashref->{'OrganizationName'};
print $org;

返回:OrganizationName

对于第二个散列:

代码语言:javascript
复制
my $org = $hashref->{'OrganizationName'};
print $org;

返回:HASH(0x1ae17e0)

这是因为当“非空”键包含一个值时,“空”OrganizationName键包含一个散列。

那么,如何测试OrganizationName键是否包含哈希,如果不继续的话?我想这样做,而不通过循环在Hash中的键,因为有很多,这似乎是相当不必要的,只有一个键。

提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-11 02:09:35

它不包含散列,它包含对散列的引用。您可以很容易地检查某个值是否是ref的引用。

代码语言:javascript
复制
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";
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21057663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档