如果 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。但我想知道是否有一种更短(而且更清洁)的方法来检查kawithin k3。
编辑问题被标记为重复。不幸的是,提到的问题中唯一的答案no autovivification只有一个赞成票,并且没有被标记为已接受的答案。就我的目的而言,这no autovification是我需要知道的功能(并且我在不知不觉中之后)。所以,我把我的问题留在这里,因为我认为另一个问题中接受的答案不是最佳答案。
不幸的是,到目前为止,没有人回答no autovification我愿意接受的答案。因此,我可能会回答我自己的问题。