gpt4 book ai didi

perl - 在分配之前测试哈希条目是否存在的更好方法

转载 作者:行者123 更新时间:2023-12-01 10:03:27 27 4
gpt4 key购买 nike

我正在寻找一种更好的方法来在使用哈希键之前先“测试”它是否存在。我目前正在编写一个将十六进制数字解码为字符串的事件日志解析器。因为我不能确定我的解码表是否包含十六进制数字,所以我首先需要检查 key 是否存在于哈希中,然后再将值分配给新变量。所以我经常做的是:

if ($MEL[$i]{type} eq '5024') {
$MEL[$i]{decoded_inline} = $decode_hash{checkpoint}{"$MEL[$i]{raw}[128]"}
if exists ($decode_hash{checkpoint}{"$MEL[$i]{raw}[128]"})
}

我不喜欢的是表达式 $decode_hash{checkpoint}{"$MEL[$i]{raw}[128]"} 在我的代码中出现了两次。上面的行是否有更好或更短的版本?

最佳答案

我怀疑这是否符合“nice”的条件,但我认为它正在实现不两次引用该表达式的目标。请注意,我不确定这种痛苦是否值得:

my $foo = $decode_hash{checkpoint}; 
my $bar = $MEL[$i]{raw}[128];
if ($MEL[$i]{type} eq '5024') {
$MEL[$i]{decoded_inline} = $foo->{$bar}
if exists ( $foo->{$bar} );
}

关于perl - 在分配之前测试哈希条目是否存在的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13430273/

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