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;andを含めます。use warnings;

これを行った場合、次のエラーが発生します。

Global symbol "%data" requires explicit package name

あなたのデータは に割り当てられたハッシュリファレンス$dataです。したがって、そのキーを表示するには、次のようにします。

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

ハッシュの第 2 レベルの 3 つの値については、次を使用します。

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

出力する必要があります(ランダムな順序で):

Key: WEB
Key: WAP/PDA
Key: WAP
于 2014-03-31T17:33:36.610 に答える