我如何从perl脚本中读取下面的yaml文件?
test.yaml
---
a: first
b: second
c: third
---
a: fourth
b: fifth
c: seventh
我尝试了以下脚本,但没有运气
use YAML;
use Data::Dumper;
open (YFILE, "<test.yaml") or die $!;
my $yaml = join('', <YFILE>);
close(YFILE)
my $hash = YAML::Load($yaml);
print Dumper($hash);
请建议。
答案 0 :(得分:4)
首先,您应该启用use strict
和use warnings
。
您在close(YFILE)
上也错过了分号。
当我在你的脚本中添加一个分号时,我得到了这个输出:
$VAR1 = {
'c' => 'seventh',
'a' => 'fourth',
'b' => 'fifth'
};
感谢@choroba,您显然可以这样做:
use YAML;
use Data::Dumper;
open (YFILE, "<test.yaml") or die $!;
my $yaml = join('', <YFILE>);
close(YFILE);
my (@objs) = YAML::Load($yaml);
print Dumper(@objs);
返回:
$VAR1 = {
'c' => 'third',
'a' => 'first',
'b' => 'second'
};
$VAR2 = {
'c' => 'seventh',
'a' => 'fourth',
'b' => 'fifth'
};