0

我有这个带有数据转储器的结构:

$VAR1 = {
      'field' => [
                 {
                   'content' => {
                                'en' => [
                                        'Footware haberdashery leather goods'
                                      ],
                                'de' => [
                                        'Schuhe Kurzwaren und Lederartikel'
                                      ],
                                'it' => [
                                        'Calzature mercerie e pelletterie'
                                      ]
                              },
                   'type' => 'tag',
                   'valore' => 'TAG3'
                 },
                 {
                   'content' => {
                                'en' => [
                                        'Cobbler'
                                      ],
                                'de' => [
                                        'Schuster'
                                      ],
                                'it' => [
                                        'Calzolai'
                                      ]
                              },
                   'type' => 'tag',
                   'valore' => 'TAG24'
                 }
               ]
    };

我的问题是:如何获取数据并一对一打印?我想打印姓名、标签和价值。对于我的软件来说,必须使用商店名称和更多数据,例如类型

4

1 回答 1

4

看起来该结构是一个包含哈希数组引用的哈希引用,依此类推。显然,在您提到“名称”的地方,您的意思是语言的“内容”。同样,您提到“标签”的地方似乎是指“类型”。我的回答将基于这些假设。

foreach my $rec (@{$href->{field}}) {
    print "$rec->{content}->{en}->[0]: $rec->{type}, $rec->{valore}\n";
}

->between {content}and {en}, and again between {en}and是可选的[0],和风格有关。

如果您只是想直接访问元素(在循环之前),您可以这样做:

print $href->{field}->[0]->{content}->{en}->[0], "\n";
print $href->{field}->[0]->{type}, "\n";
print $href->{field}->[0]->{valore}, "\n";

如果要打印所有语言,可以这样做:

foreach my $rec (@{$href->{field}}) {
    print $rec->{content}->{$_}->[0], "\n" foreach sort keys %{$rec->{content}};
    print $rec->{type}, "\n";
    print $rec->{valor}, "\n\n";
}

当您学习使用 Perl 操作引用和数据结构时,有几个 Perl 文档页面可能对您有用: perlreftutperlrefperldsc。例如,从您自己的系统访问它们perldoc perlreftut

于 2016-07-25T14:53:40.113 回答