我有一个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
答案 0 :(得分:9)
您正在将YAML加载到$list
。然后,您在散列'date'
中设置%list
(一个完全不同的变量,初始化为空),并将其转储。
${$list}{date} = '12-11-2011';
print Dump($list);
您应该阅读perlreftut和
use strict;