使用perl中的变量构建数组散列的散列?

gae*_*cia 1 arrays perl hash reference

my %cellHash
Run Code Online (Sandbox Code Playgroud)

有不同的键,$ cellDirectory包含所需键的值.

我试图将哈希值指定为当前键($cellDirectory)的值.该哈希只有2个密钥,每个密钥都有一个不同的数组作为值.

%{ $cellHash{$cellDirectory} } = (
'R1Tests'  => \@fastqcResults_R1 ;
'R2Tests'  => \@fastqcResults_R2 ;
);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试运行脚本时,它会在代码的这一部分附近返回语法错误.

我不知道我做错了什么......有什么想法吗?

Mat*_*cob 6

列表中的分号是问题所在.

%{ $cellHash{$cellDirectory} } = (
    R1Tests => \@fastqcResults_R1,
    R2Tests => \@fastqcResults_R2,
);
Run Code Online (Sandbox Code Playgroud)

更新:

在回答评论中的问题时,我会这样做.

匿名哈希语法(引用文字)将是我的第一选择:

$cellHash{$cellDirectory} = {
    R1Tests => \@fastqcResults_R1,
    R2Tests => \@fastqcResults_R2,
};
Run Code Online (Sandbox Code Playgroud)

这也是有效的,尽管我更喜欢它:

my %newHash = (
    R1Tests => \@fastqcResults_R1,
    R2Tests => \@fastqcResults_R2,
);

$cellHash{$cellDirectory} = \%newHash;
Run Code Online (Sandbox Code Playgroud)