Чтение и запись в YML конфиг файлы в perl
Posted in Новости on 28 октября, 2013 by adminИмеем конфиг в YAML формате :
config:
mysql1:
user: myuser1
password: mypassword1
mysql2:
user: myuser2
password: mypassword2
Требуется посмотреть и изменить нужный параметр. Допустим, требуется изменить password у user в секции mysql1 . Для этого в perl существует библиотека для стандарта YAML.
Фактически, конфиг представляет собой хеш массив, поэтому yaml распарсивает данные.
#!/usr/bin/perl
use strict;
use warnings;
use YAML qw(LoadFile Dump); # подключаем нужный модуль с нужными функциями
my $config = LoadFile('config.yml'); # загружаем конфиг
my $user1_pass = $config->{'config'}->{mysql1}->{password}; # находим значение по ключу
print "$user1_pass";
Далее, после того, как мы нашли нужный параметр, нам требуется его перезаписать. Для этого в имеющемся у нас хеш-массиве меняем значение и записываем новый хеш массив в файл.
#!/usr/bin/perl
use strict;
use warnings;
use YAML qw(LoadFile Dump); # подгружаем нужный модуль с нужными параметрами
my $config = LoadFile('config.yml'); # загружаем конфиг
$config->{'config'}->{mysql1}->{password} = '123123'; # меняем значение ключа
open F, '>', 'config.yml'; # открываем файл на запись
print F Dump($config); # пишем output в хендлер файла
close F; # закрываем хэндлер