问候Perl专家
根据下面的YAML文件,这个例子Perl:YAML iterate in the Array?有人可以这么好地向我展示一个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]
非常感谢!
答案 0 :(得分:2)
您想获取每个国家/地区的信息,还是只获取特定的信息?
具体的一个:
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";
}
}
答案 1 :(得分:2)
取决于您如何定义“选择”,这可能会有所帮助:
use strict;
use warnings;
use YAML::XS qw(LoadFile);
my $data = LoadFile('test.yaml');
for my $city (@{$data->{USA}{BeenThere}}) {
print("$city ");
}
每个国家/地区都是哈希引用,城市是数组引用(处理方式与您传递的链接相同)。