0

我是 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/PDAWAP请问这怎么可能?

4

1 回答 1

1

在您制作的每个 perl 脚本的顶部包含use strict;和。use warnings;

如果你这样做了,你会得到以下错误:

Global symbol "%data" requires explicit package name

您的数据是分配给的 hashref $data。因此,要查看它的键,请执行以下操作:

print "Key: $_\n" for keys %$data;

对于散列第二级的三个值,您将使用以下内容:

print "Key: $_\n" for keys %{$data->{technical-profile}};

应该输出(以随机顺序):

Key: WEB
Key: WAP/PDA
Key: WAP
于 2014-03-31T17:33:36.610 回答