我遇到了一个问题,当我试图查找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
如果此条目存在并且不在哈希中添加此内容,最好的方法是什么? 我试过“存在”“定义”,这是一回事。
感谢您的支持。 对不起我的英语。
答案 0 :(得分:4)
您必须首先测试key2
,然后才能测试subkey2
if (defined($hash{'key2'}) && defined($hash{'key2'}{'subkey2'}) ) {
print "Here\n";
}
否则,Perl会创建$hash{'key2'}
以检查subkey2
。