我对下面的哈希声明有疑问:
%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"}
组合在一起,指向一个值吗?答案 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
}
}
};