在 Perl 中解析 HoAoHoAoHoAoH
Parsing a HoAoHoAoHoAoH in Perl
我是 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] },
],
},
],
},
]
}
]
);
访问 "color"、"quantity" 和 "boxes" 的最简单方法是什么?我还需要对 "quantity" 进行算术运算,例如 10+2+5 (quantity0+quantity1+quantity2).
这看起来很像 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 或类似的,在这种情况下几乎肯定有更好的方法。
我是 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] },
],
},
],
},
]
}
]
);
访问 "color"、"quantity" 和 "boxes" 的最简单方法是什么?我还需要对 "quantity" 进行算术运算,例如 10+2+5 (quantity0+quantity1+quantity2).
这看起来很像 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 或类似的,在这种情况下几乎肯定有更好的方法。