首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Perl代码!它能做什么(散列的散列)?

Perl代码!它能做什么(散列的散列)?
EN

Stack Overflow用户
提问于 2017-03-09 17:06:11
回答 2查看 73关注 0票数 0

我现在正在写一些以前的实习生写的代码。我不熟悉Perl,因此在理解他的代码的实际功能时遇到了一些问题。所以它看起来是这样的:

代码语言:javascript
复制
$Hash{Key1}{Key2}++; 

原始代码是:

代码语言:javascript
复制
$genotypes_parent2_array{$real_genotype}{$individu_depth}++; 

我过去常常看到这种形式的散列$Hash{Key}以获取值,但我很难处理这个。外面有什么帮助吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-09 17:09:05

%Hash是散列的散列。

这些代码将1添加到$Hash{Key1}{Key2}的值中,该值是散列元素的值。

票数 -1
EN

Stack Overflow用户

发布于 2017-03-09 17:46:58

%genotypes_parent2_array是一个哈希(所以这不是一个很好的变量名称!)散列中的每个值都是一个散列引用。因此,实际上你有一个散列的散列。

$genotypes_parent2_array{$real_genotype}在散列中查找密钥$real_genotype。这个值(正如我们上面所说的)是一个散列引用。如果您有一个散列引用,那么您可以使用箭头在引用的散列中查找值。因此,我们可以使用如下代码在第二级散列中获得一个值:

代码语言:javascript
复制
$genotypes_parent2_array{$real_genotype}->{$individu_depth}

但是,Perl有一块很好的语法糖。当你有两对紧挨着的“查找括号”时(就像我们这里),你可以省略箭头。因此,您可以使用以下命令获得完全相同的效果:

代码语言:javascript
复制
$genotypes_parent2_array{$real_genotype}{$individu_depth}

这就是我们所拥有的。我们在散列%genotypes_parent2_array中查找密钥$real_genotype。这给了我们一个散列引用。然后,我们在引用的数组中查找键$individu_depth,这给出了二级散列中的值。然后,您的代码会递增该值。

手册页perldoc perldsc很好地介绍了如何在Perl语言中使用引用来构建复杂的数据结构。此外,我发现Data::Dumper在显示复杂数据结构方面非常有用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42691006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档