gpt4 book ai didi

perl - 如果检查存在,则出现的键

转载 作者:行者123 更新时间:2023-12-04 12:48:14 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Checking for existence of hash key creates key

(4 个回答)


8年前关闭。




如果像这样声明 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 .

我也可以检查是否存在 kak3 :
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 key 。

我当然可以检查 kak3
if (exists $h{k3} and exists $h{k3}{ka})

它不会创建 key k3 .但我想知道是否有更短(而且更干净)的方法来检查 kak3 .

编辑 该问题被标记为重复。不幸的是,提到的问题中唯一的答案提到了 no autovivification在那里只有一个赞成票,并且没有被标记为已接受的答案。就我而言, no autovification是我需要知道的功能(而且我是在不知不觉中追求的)。所以,我把我的问题留在这里,因为我认为另一个问题中接受的答案不是最佳答案。

不幸的是,到目前为止没有人回答 no autovification我愿意接受。因此,我可能会回答我自己的问题。

最佳答案

最简单的事情是嵌套你的 ifs:

if (exists $h{k3}) {
print "k3 exists\n";
if (exists $h{k3}{ka}) {
print "k3 ka exists\n";
}
else {
print "k3 ka doesn't exist\n";
}
}
else {
print "k3 doesn't exist\n";
}

关于perl - 如果检查存在,则出现的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16926741/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com