dumper后打印数据

Print data after dumper

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

$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'
                 }
               ]
    };

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

看起来该结构是一个包含哈希数组引用的哈希引用,等等。显然,在您提到 'name' 的地方,您指的是 'content' 的语言。同样,您提到 'tag' 的地方似乎是指 'type'。我的回答将基于这些假设。

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

{content}{en} 之间的 -> 以及 {en}[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 访问它们。