0

私の perl スクリプトは、次の Data::Dumper 出力を持つ variable を生成します。

$VAR1 = [
  {
    'displayName' => 'unconfirmed',
    'tagName' => 'unconfirmed'
  },
  {
    'displayName' => 'new',
    'tagName' => 'new'
  },
  {
    'displayName' => 'started',
    'tagName' => 'started'
  },
  {
    'displayName' => 'reopened',
    'tagName' => 'reopened'
  },
  {
    'displayName' => 'resolved',
    'tagName' => 'resolved'
  }
];

この出力を再作成するための perl コードは次のようになります。

my $foo = ([
  {
    'displayName' => 'unconfirmed',
    'tagName' => 'unconfirmed'
  },
  {
    'displayName' => 'new',
    'tagName' => 'new'
  },
  {
    'displayName' => 'started',
    'tagName' => 'started'
  },
  {
    'displayName' => 'reopened',
    'tagName' => 'reopened'
  },
  {
    'displayName' => 'resolved',
    'tagName' => 'resolved'
  }
]);
print Dumper($foo);

質問 A:どうすればコンテンツにアクセスできますか?

助けてくれてありがとう!構造体にアクセスする方法の例を次に示します。

for my $item (@{$foo}) {
    print $item->{tagName};
}

質問 B:ハッシュ、配列、さまざまな括弧の意味など、言語コンテキストの適切なリファレンスは何ですか?

注:構造自体は、いくつかの SOAP 呼び出し、xpath ( SOM->valueof) および直接参照 ( $som->{tag1}->{tag2}) の最後にありますが、この質問が質問しやすく、回答しやすいことを願っています。

4

3 に答える 3

4

Perlはキーレスハッシュを作成しません。$ fooで見ているのは配列参照なので、実行する必要がありますprint $foo->[$_]{displayName} for 0 .. $#{$foo}

そして、参考までに、それは必要ありません。本格的なイントロテキストが必要です。http://perl-tutorial.orgを参照してください

于 2013-02-27T18:56:49.993 に答える
3

回答A:

ハッシュと配列への参照(スカラー)を使用したため、要素にアクセスするには、スカラーの参照を解除する必要があります。

たとえば、3番目のハッシュにアクセスする場合は、次のようにアクセスします。

$foo->[2]->{"displayName"}; # accesses 'started'
$foo->[2]->{"tagName"}; # accesses 'started'

回答B:

参考までにこちらをご覧ください

于 2013-02-27T18:55:46.220 に答える
0

このような複雑な Perl データ構造について学習するための良い出発点は、すべての Perl インストールに含まれている (コマンド ラインで入力する) Data Structures Cookbookです。perldoc perldsc

于 2013-02-28T09:20:44.627 に答える