Разбор файла YAML с использованием Perl - PullRequest
0 голосов
/ 01 ноября 2018

Мне нужна помощь в разборе следующего файла config.yml:

yamlFile:    
    map:    
        "[abcd.txt]":    
            - name: John    
            - city: Omaha    
        "[efgh.txt]":    
            - name: Sandra    
            - city: Columbus    
        "[ijkl.txt]":    
            - name: Annie   
            - city: Chicago    

Я использую следующий скрипт для разбора.

my $config = LoadFile('config.yml');   
use Data::Dumper;    

for my $conf ( keys %$config ) {    
    print "$conf\n";   
    my $map = $config->{$conf};    
    for my $map1 ( keys %$map ) {    
        print "$map1\n";    
    }    
}    

Это печатает следующее:

yamlFile    
map    

Поскольку ключи $ map1 различны, как мне продолжить, чтобы получить имя и город каждого элемента?

1 Ответ

0 голосов
/ 01 ноября 2018

Вот пример того, как получить доступ к элементам в файле конфигурации YAML:

use feature qw(say);
use strict;
use warnings;
use YAML qw(LoadFile);

my $config = LoadFile('config.yml');   
my $map_hash = $config->{yamlFile}{map};    
for my $conf ( keys %$map_hash ) {    
    say $conf;   
    my $elems = $map_hash->{$conf};
    for my $map1 ( @$elems ) {    
        for my $data ( keys %$map1 ) {
            say "$data:", $map1->{$data};
        }
    }    
}    

выход

[ijkl.txt]
name:Annie
city:Chicago
[abcd.txt]
name:John
city:Omaha
[efgh.txt]
name:Sandra
city:Columbus
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...