版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/08/19/load-yaml-with-perl/以及本声明。
Perl对YAML的支持很好,著名的Plagger就是用YAML作为配置文件的。
在Perl中读取YAML文件也很简单。常用的模块就是YAML,这是个纯Perl的实现,速度慢,但可以跨平台运行。如果追求运行速度而不在乎平台问题,可以使用YAML::Syck和YAML::XS,两者都是C语言的实现。 YAML::Syck的C语言部分基于libsyck,而YAML::XS的C语言部分基于libyaml。两者相比,YAML::XS稍稍快一点,而且它精确地实现了YAML标准1.1版的内容。
用下面的john.yaml作为例子(从IBM网站copy过来的):
name: John Smith
age: 37
spouse:
name: Jane Smith
age: 25
children:
- name: Jimmy Smith
age: 15
- name: Jenny Smith
age: 12
用YAML::Syck需要先安装YAML-Syck包,然后:
#!/usr/bin/perl
use YAML::Syck;
use Data::Dumper;
$yaml = LoadFile("john.yaml");
print Dumper($yaml);
输出结果:
$VAR1 = {
'spouse' => {
'name' => 'Jane Smith',
'age' => '25'
},
'name' => 'John Smith',
'children' => [
{
'name' => 'Jimmy Smith',
'age' => '15'
},
{
'name' => 'Jenny Smith',
'age' => '12'
}
],
'age' => '37'
};
用YAML::XS需要先安装YAML-LibYAML包,然后
#!/usr/bin/perl
use YAML::XS;
use Data::Dumper;
open FH, "john.yaml";
$yaml_content = do { local $/; <FH>; };
close FH;
$yaml = Load($yaml_content);
print Dumper($yaml);