Perl - Hash of Hash - 测试条目是否存在

时间:2013-11-19 17:20:29

标签: perl hash hash-of-hashes

我遇到了一个问题,当我试图查找Hash of Hash中是否存在条目时,如果它不存在,Perl会创建此条目。 我的代码的例子:

use warnings;
use strict;

my %hash;

$hash{'key1'}{'subkey1'} = "value1";

if ( defined($hash{'key2'}{'subkey2'}) ) {
    print "Here\n";
}

print keys %hash;

此代码返回:

key1key2

如果此条目存在并且不在哈希中添加此内容,最好的方法是什么? 我试过“存在”“定义”,这是一回事。

感谢您的支持。 对不起我的英语。

1 个答案:

答案 0 :(得分:4)

您必须首先测试key2,然后才能测试subkey2

if (defined($hash{'key2'}) && defined($hash{'key2'}{'subkey2'}) ) {
    print "Here\n";
}

否则,Perl会创建$hash{'key2'}以检查subkey2