Perl的.如何修改yaml文件?

Ale*_*dov 1 perl yaml dump

我有一个yaml文件,看起来像这样:

---
date: 25-01-2010
version: 0.1
Run Code Online (Sandbox Code Playgroud)

我想编辑它.我用这个代码:

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;
}
Run Code Online (Sandbox Code Playgroud)

当它完成时,我的yaml文件最后只包含日期和空行.

--- 
date: 12-11-2011
Run Code Online (Sandbox Code Playgroud)

这段代码出了什么问题?如果我在写作之前检查值版本我得到了好的结果,它显示版本但它根本不写它...

我尝试使用YAML :: Syck :: DumbFile,但写入后文件也不包含版本,它看起来像这样:

---
date:
12-11-2011
Run Code Online (Sandbox Code Playgroud)

eph*_*ent 9

您正在加载YAML $list.然后,您将设置'date'哈希%list(一个完全不同的变量,初始化为空),并转储它.

${$list}{date} = '12-11-2011';
print Dump($list);
Run Code Online (Sandbox Code Playgroud)

你应该阅读perlreftut

use strict;