0

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

%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”)和值($name、$Type)。

但在第 3 行,

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

1 回答 1

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
                          }
                 }
        };
于 2018-03-20T17:11:44.410 回答