我是perl的新手,我想获取使用XML::SIMPLE
模块生成的哈希表的密钥
像这样
$data = $xml->XMLin("tp.xml");
这是生成的结构
$VAR1 = {
'technical-profile' => {
'WEB' => {
'mandatory-param' => {
'value' => 'high',
'name' => 'screenCapability',
'case-sensitive' => 'no'
}
},
'WAP/PDA' => {
'description' => 'wap/sparphone',
'mandatory-param' => {
'value' => 'low|intermediate',
'name' => 'screenCapability',
'case-sensitive' => 'no'
}
},
'WAP' => {
'description' => 'wap/sparphone',
'mandatory-param' => {
'value' => 'low',
'name' => 'screenCapability',
'case-sensitive' => 'no'
}
}
}
};
我试过这个
print "Key: $_" foreach (keys%data);
但我一无所获;我想打印WEB
WAP/PDA
和WAP
请问这有什么可能吗?
答案 0 :(得分:1)
在您制作的每个perl脚本的顶部添加use strict;
和use warnings;
。
如果你这样做了,你会得到以下错误:
Global symbol "%data" requires explicit package name
您的数据是分配给$data
的hashref。因此,要查看它的键,请执行以下操作:
print "Key: $_\n" for keys %$data;
对于哈希的第二级上的三个值,您将使用以下内容:
print "Key: $_\n" for keys %{$data->{technical-profile}};
应输出(按随机顺序):
Key: WEB
Key: WAP/PDA
Key: WAP