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形式产生的吗?您是如何生成它的?没有名称字段。你是说满足吗?如何处理具有空数组的语言?如何处理数组中包含多个元素的语言?