Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 在转储程序后打印数据_Perl_Data Dumper - Fatal编程技术网

Perl 在转储程序后打印数据

Perl 在转储程序后打印数据,perl,data-dumper,Perl,Data Dumper,我的数据转储程序结构如下: $VAR1 = { 'field' => [ { 'content' => { 'en' => [ 'Footware haberdashery leather goods'

我的数据转储程序结构如下:

$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'
                 }
               ]
    };
我的问题是:如何获取数据并逐个打印? 我要打印姓名、标签和价格。
对于我的软件来说是必要的,以商店的名称和更多的数据为例,类型

看起来结构是一个包含哈希数组的hashref,等等。显然,当你提到“名字”时,你指的是语言中的“内容”。同样地,你提到“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文档页面可能会对您有所帮助:
perlreftut
perlref
perldsc
。例如,从您自己的系统中以
perldoc perlreftut
的身份访问它们。

该结构似乎是一个包含哈希数组引用的hashref,依此类推。显然,当你提到“名字”时,你指的是语言中的“内容”。同样地,你提到“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文档页面可能会对您有所帮助:
perlreftut
perlref
perldsc
。例如,从您自己的系统中以
perldoc perlreftut
的身份访问它们。

如果我理解正确,您希望知道如何访问数据结构中的值。您希望迭代作为字段元素的哈希引用中的字段数组引用和访问键。我建议您阅读并了解Perl中数据结构的介绍。这些数据是以XML形式产生的吗?您是如何生成它的?没有名称字段。你是说满足吗?如何处理具有空数组的语言?您想如何处理数组中包含多个元素的语言?如果我理解正确,您想知道如何访问数据结构中的值。您希望迭代作为字段元素的哈希引用中的字段数组引用和访问键。我建议您阅读并了解Perl中数据结构的介绍。这些数据是以XML形式产生的吗?您是如何生成它的?没有名称字段。你是说满足吗?如何处理具有空数组的语言?如何处理数组中包含多个元素的语言?