加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

创建一个以数组为键的Perl哈希

发布时间:2020-12-15 21:48:26 所属栏目:大数据 来源:网络整理
导读:如何将数组(如下例中的元组)放入Perl中的哈希? %h=();@a=(1,1);$h{@a}=1 or $h{@a}=1?? 我尝试使用数组引用,但它不起作用.我该如何使它工作?我希望通过散列(以及其他方面)进行基本上重复删除. 解决方法 常规哈希只能有字符串键,因此您需要为数组创建某种
如何将数组(如下例中的元组)放入Perl中的哈希?
%h=();
@a=(1,1);
$h{@a}=1 or $h{@a}=1??

我尝试使用数组引用,但它不起作用.我该如何使它工作?我希望通过散列(以及其他方面)进行基本上重复删除.

解决方法

常规哈希只能有字符串键,因此您需要为数组创建某种哈希函数.一个简单的方法是简单地将 join个数组元素,例如
$h{join('-',@a)} = @a;  # A nice readable separator
$h{join($;,@a)} = @a;   # A less likely,configurable separator ("34")

但是这种方法(使用哨兵值)要求你选择一个在钥匙中找不到的角色.以下不会遇到这个问题:

$h{pack('(j/a*)*',@a)} = @a;

或者,查看Hash::MultiKey,它可以采用更复杂的密钥.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读