Perl. Как редактировать файл yaml? - PullRequest
1 голос
/ 13 ноября 2011

У меня есть файл yaml, который выглядит следующим образом:

---
date: 25-01-2010
version: 0.1

Я хочу отредактировать его.Я использую этот код:

use YAML::XS qw(LoadFile);
use YAML::Syck qw(Dump);    

my $list = LoadFile("config.yaml");
$list{date} = "12-11-2011";
print "The date is $list->{date} \n";
print "The version is $list->{version} \n";
open F, '>', "config.yaml";
print F Dump( \%list );
close F;
}

, и когда это будет сделано, мой файл yaml содержит только дату и пустую строку в конце.

--- 
date: 12-11-2011

Что не так с этим кодом?если я проверяю значение версии перед записью, то получаю хороший результат, он показывает версию, но не записывает ее вообще ...

Я пытался использовать YAML :: Syck :: DumbFile, но файл после записи не содержалверсия тоже, и это выглядело так:

---
date:
12-11-2011

1 Ответ

9 голосов
/ 13 ноября 2011

Вы загружаете YAML в $list. Затем вы устанавливаете 'date' в хэше %list (совершенно другая переменная, которая инициализируется пустой) и выкидываете ее.

${$list}{date} = '12-11-2011';
print Dump($list);

Вы должны прочитать perlreftut и

use strict;

...