YAML::Syck でハッシュと配列のネストになっているデータ構造からデータを取得する場合

サンプル

#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use YAML::Syck;

# ハッシュ -> 配列 -> ハッシュの
# ネスト構造になっている場合
my $yaml = <<END;
countries: 
  - name: Japan
    metropolis: Tokyo
  - name: United States of America
    metropolis: Wasington, D.C
  - name: South Korea
    metropolis: Seoul
  - name: China
    metropolis: Beijing
  - name: Taiwan
    metropolis: Taipei
  - name: Russia
    metropolis: Moscow
END

# スカラー値を文字列として扱わない
$YAML::Syck::ImplicitTyping = 1;
my $configs = YAML::Syck::Load($yaml);

# @{$configs->{countries}} で配列を取得できる
for my $country (@{$configs->{countries}}) {
    print 'Coountry: ', $country->{name}, ', Metropolis: ', $country->{metropolis}, "\n";
}

実行結果

% ./yaml.pl
Coountry: Japan, Metropolis: Tokyo
Coountry: United States of America, Metropolis: Wasington, D.C
Coountry: South Korea, Metropolis: Seoul
Coountry: China, Metropolis: Beijing
Coountry: Taiwan, Metropolis: Taipei
Coountry: Russia, Metropolis: Moscow