Perl:如何测试是否已将任何值(甚至为零)分配给散列键
发布时间:2020-12-16 06:08:03 所属栏目:大数据 来源:网络整理
导读:是否有正确的测试方法,如果已经为特定的哈希键分配了任何值,即使该值为零?我一直在处理这样的声明: %hash=();$hash{a}=1;$hash{b}=0;if($hash{$key}) { do something } 但是,对于已经被触摸的键和已被赋值为0的键(例如,$hash {b}和$hash {c}都计算为’fals
是否有正确的测试方法,如果已经为特定的哈希键分配了任何值,即使该值为零?我一直在处理这样的声明:
%hash=(); $hash{a}=1; $hash{b}=0; if($hash{$key}) { do something } 但是,对于已经被触摸的键和已被赋值为0的键(例如,$hash {b}和$hash {c}都计算为’false’),这给出了相同的结果.有没有办法说出这两者之间的区别? 解决方法
使用
defined运算符检查某些内容是否具有非undef值
if ( defined $hash{ $key } ) { //do stuff } 使用exists运算符检查是否已写入%hash的$key if ( exists $hash{ $key } ) { //do stuff } 区别在于定义检查以查看值是否为undef和exists之外的任何值,用于验证$key是否为散列的键,尽管其值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |