Вам нужно выполнить некоторые упражнения со структурами данных и ссылками. Это работает:
use 5.010;
use strict;
use warnings FATAL => 'all';
use YAML qw(Load);
my @structs = Load(<<'...');
---
Field1: F1
Field2:
- {Key: v1, Val: v2}
- {Key: v3, Val: v4}
---
Field1: F2
Field2:
- {Key: v5, Val: v6}
- {Key: v7, Val: v8}
...
# (
# {
# Field1 => 'F1',
# Field2 => [
# {
# Key => 'v1',
# Val => 'v2'
# },
# {
# Key => 'v3',
# Val => 'v4'
# }
# ]
# },
# {
# Field1 => 'F2',
# Field2 => [
# {
# Key => 'v5',
# Val => 'v6'
# },
# {
# Key => 'v7',
# Val => 'v8'
# }
# ]
# }
# )
foreach (@structs) {
my $f2_aref = $_->{'Field2'};
print scalar @{ $f2_aref }; # 2
foreach (@{ $f2_aref }) {
say sprintf '%s -> %s', $_->{'Key'}, $_->{'Val'};
}
# v1 -> v2
# v3 -> v4
# v5 -> v6
# v7 -> v8
}