Perl哈希:为键分配值并查看键是否已定义
发布时间:2020-12-16 06:15:55 所属栏目:大数据 来源:网络整理
导读:是否有一种有效的方法可以查看,如果哈希键分配导致添加新项目或修改现有项目?与 Bloom’s filter implementation中的add函数类似的行为. 在下面的构造中,执行两次查找:一次显式地使用exists,另一次在赋值期间隐式执行.因此,第一次查找在逻辑上是冗余的. my
是否有一种有效的方法可以查看,如果哈希键分配导致添加新项目或修改现有项目?与
Bloom’s filter implementation中的add函数类似的行为.
在下面的构造中,执行两次查找:一次显式地使用exists,另一次在赋值期间隐式执行.因此,第一次查找在逻辑上是冗余的. my %hash; my $key; ... my $existed = exists $hash{$key}; $hash{$key} = 1; 解决方法
通过“项目”,我认为你的意思是“关键”.
如果该值无意义,您可以使用以下内容: my $dup = $hash{$key}++; 如果值有意义,您可以使用以下内容: my $dup = exists($hash{$key}); $hash{$key} = $val; 如果值有意义但始终定义,则可以使用以下内容: my $ref = $hash{$key}; my $dup = defined($$ref); $$ref = $val; 顺便说一句,第一个代码片段可以很容易地扩展,以从列表中过滤出重复的内容. my %seen; my @unique = grep !$seen{$_}++,@list; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |