我有一个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)
您正在加载YAML $list.然后,您将设置'date'哈希%list(一个完全不同的变量,初始化为空),并转储它.
${$list}{date} = '12-11-2011';
print Dump($list);
Run Code Online (Sandbox Code Playgroud)
你应该阅读perlreftut和
use strict;