0

我是 Perl 的新手,对哈希有一点了解。我有一个哈希数组的哈希数组哈希数组的哈希(HoAoHoAoHoAoH),如下所示。

%my_hash = (
    key00 => 'value00',
    key01 => [
        {  key10 => 'value10',
           key11 => 'value11',
           key12 => [
               {   key20  => 'value20',
                   key21  => 'value21',
                   key22  => [
                       {   key30  => 'value30',
                           key31    => [
                               { color => 'blue',  quantity => 10, boxes => [0,1,3] },
                               { color => 'red',   quantity => 2,  boxes => [2,3]   },
                               { color => 'green', quantity => 5,  boxes => [0]     },
                           ],
                       },
                   ],
               },
           ]
        }
    ]
);

访问“颜色”、“数量”和“框”的最简单方法是什么?我还需要对“数量”进行算术运算,例如 10+2+5 (quantity0+quantity1+quantity2)。

4

1 回答 1

0

这看起来很像 XY 问题。你想在这里解决什么?

您可以像这样访问数据结构的元素:

print $my_hash{key01}[0]{key12}[0]{key22}[0]{key31}[0]{color},"\n";

您还可以使用以下方法迭代底部元素:

foreach my $something ( @{ $my_hash{key01}[0]{key12}[0]{key22}[0]{key31} } ) {
   print $something->{'color'};
   print $something->{'quantity'}
}

但这看起来不像是一个真正的问题——你实际上想要完成什么?我可能猜想您正在尝试解析 XML 或类似的东西,在这种情况下,几乎可以肯定有更好的方法。

于 2015-02-03T10:13:09.993 回答