如果 perl-hash 声明如下:
use warnings;
use strict;
my %h;
然后,我可以使用以下命令检查此哈希中是否存在键exists
:
if (exists $h{k3}) {
print "k3 exists\n";
}
else {
print "k3 doesn't exist\n";
}
由于k3
不存在,脚本打印k3 doesn't exist
.
我还可以检查是否ka
存在k3
:
if (exists $h{k3}{ka}) {
print "k3 ka exists\n";
}
else {
print "k3 ka doesn't exist\n";
}
不幸的是,这创建了 key k3
,因此另一个
if (exists $h{k3}) {
print "k3 exists\n";
}
else {
print "k3 doesn't exist\n";
}
现在打印k3 exists
。
这对我的目的来说有点不幸。我宁愿不希望 perl 创建k3
密钥。
当然,我可以用类似的东西检查ka
内部k3
if (exists $h{k3} and exists $h{k3}{ka})
这不会创建 key k3
。但我想知道是否有一种更短(而且更清洁)的方法来检查ka
within k3
。
编辑问题被标记为重复。不幸的是,提到的问题中唯一的答案no autovivification
只有一个赞成票,并且没有被标记为已接受的答案。就我的目的而言,这no autovification
是我需要知道的功能(并且我在不知不觉中之后)。所以,我把我的问题留在这里,因为我认为另一个问题中接受的答案不是最佳答案。
不幸的是,到目前为止,没有人回答no autovification
我愿意接受的答案。因此,我可能会回答我自己的问题。