Perl的。如何修改yaml文件?

时间:2011-11-13 02:59:23

标签: perl yaml dump

我有一个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 个答案:

答案 0 :(得分:9)

您正在将YAML加载到$list。然后,您在散列'date'中设置%list(一个完全不同的变量,初始化为空),并将其转储。

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

您应该阅读perlreftut

use strict;