在散列中,我们可以将三个键组合在一起指向一个值吗?

时间:2018-03-20 17:05:25

标签: perl perl-hash

我对下面的哈希声明有疑问:

%metadataHash是哈希

line 1: $metadataHash->{"name"} = $name;
line 2: $metadataHash->{"type"} = $Type;
line 3: $metadataHash->{"student"}{$file}{"math"} = "/$file";
line 4: $metadataHash->{"student"}{$file}{"phy"} = $phy;
line 5: $metadataHash->{"student"}{$file}{"chem"} = $chem;

在第1行和第2行中,很明显键("名称","类型")和值($ name,$ Type)。

但在第3行,

  • 我们可以将三个键{"student"}{$file}{"math"}组合在一起,指向一个值吗?
  • 在第3行中,它们是以一键还是三键不同的方式组合在一起的?

1 个答案:

答案 0 :(得分:3)

$metadataHash->{"fastq"}{$file1}{"read1"}$metadataHash->{"fastq"}->{$file1}->{"read1"}的简写语法。

它处理散列,其中值是对另一个散列的引用。

通过演示解释:

#!/usr/bin/perl

use strict;
use warnings;

my $foo = {};

$foo->{a}{b}{c} = 1;

use Data::Dumper;

print Dumper($foo);

给出:

$VAR1 = {
          'a' => {
                   'b' => {
                            'c' => 1
                          }
                 }
        };