【发布时间】:2016-11-29 11:07:55
【问题描述】:
问题
我有一个散列/数组结构,但有些散列键的情况不同。
我想知道是否有一种方法可以在不手动检查每个哈希的键的情况下处理这种情况。
在下面的示例中,我希望打印所有 ID/iD/id/Id 字段。
示例代码
use warnings;
use strict;
my $Hash = {
Server => [
{
Id=>123
},
{
iD=>456
},
{
ID=>789
}
]
};
for (@{$Hash->{Server}}){
print "$_->{ID}\n"
#This is the problematic part
}
其他
perl 版本:v5.10.0
这些数据是从其他地方收到的,并且必须保持相同的大小写,上面的示例是最小的,我不能简单地将它们全部更改为相同的大小写。
如果需要更多信息,请告诉我。
【问题讨论】:
-
你在解析什么来得到这个数据结构?
-
@Sobrique 我喜欢在研究资料时识别出答案的名称。 :)
-
@Sobrique XML。我无法更改收到的 xml。
-
不,但您可能可以使用更好的解析器。因为这看起来你已经使用了
XML::Simple,而这只是一条通往痛苦的道路。如果您发布一些示例XML我可能会给您一个更好的解决方案。 -
XML::Twig有lc_attnames可能完全符合您的要求。