的Perl:YAML:哈希如何选择一个条目?(Perl:YAML:Hash How to selec

2019-09-19 17:17发布

问候的Perl专家

基于下面的YAML文件,这个例子的Perl:YAML迭代的阵列? 有人可以请这么好心给我一个Perl的例子,我可以选择以全国,并打印出我一直是城市?

USA:
    BeenThere: [Miami, Denver, Las Vegas, Chicago]
    ToVisit:   [Los Angeles, Boston]
Europe:
    BeenThere: [Paris, Amsterdam, Dublin, Bulgaria, Madrid]
    ToVisit:   [Budapest, Belgrad]
Latam:
     BeenThere: [Venezuela, Bogota]
     ToVisit:   [Argentina, San Paulo]

非常感谢!

Answer 1:

你想获得每个国家的信息,或者只是一个特定的一个?

具体之一:

my $country_name = '...';
my $country = $data->{$country_name};
my $visited = $country->{BeenThere};
for my $city_name (@$visited) {
   say $city_name;
}

所有:

for my $country_name (keys %$data) {
   my $country = $data->{$country_name};
   my $visited = $country->{BeenThere};
   for my $city_name (@$visited) {
      say "$city_name, $country_name";
   }
}


Answer 2:

取决于你如何定义“选择”,这可能帮助:

use strict;
use warnings;
use YAML::XS qw(LoadFile);

my $data = LoadFile('test.yaml');

for my $city (@{$data->{USA}{BeenThere}}) {
  print("$city ");
}

每个国家是一个散列引用和城市是数组引用(如你通过链接处理)。



文章来源: Perl:YAML:Hash How to select an entry?
标签: perl yaml