哈希散列中的哈希数组?

San*_*ing 0 arrays perl hash

我有这个HoH

#!/usr/bin/perl

use warnings;
use strict;

my $a = {
    '0' => {
            'i' => -1,
            'u'  => -1,
    },
};
Run Code Online (Sandbox Code Playgroud)

但我想要的是

my $a = {
    '0' => {
            'i' => -1,
        'u'  => -1,
            (
              {
               'i' => -1,
               't' => -1,
              },
            ),
          },
        };
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误.

是否有可能在HoH中拥有AoH?

小智 8

它可能会大喊你"$ filename line $ line的匿名哈希中奇数个元素",对吧?那是因为你不能真正将数组填充到哈希中 - 数组引用需要键入,就像任何其他哈希元素一样.此外,您需要使用[]而不是()来创建数组ref:

my $a = {
    0 => {
        i => -1,
        u => -1,
        x => [{i => -1, t => -1}],
    },
};
Run Code Online (Sandbox Code Playgroud)

不产生任何错误.然后您可以像这样访问它:$ a - > {0} {x} [0] {i};