﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-金鳞-文章分类-perl-yaml</title><link>http://www.cnitblog.com/chenxin9821/category/7901.html</link><description>目标-&gt;软件测试架构师</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 19:05:29 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 19:05:29 GMT</pubDate><ttl>60</ttl><item><title>yaml::syck的loadfile函数---perl读取yaml文件</title><link>http://www.cnitblog.com/chenxin9821/articles/52536.html</link><dc:creator>金鳞</dc:creator><author>金鳞</author><pubDate>Thu, 11 Dec 2008 05:53:00 GMT</pubDate><guid>http://www.cnitblog.com/chenxin9821/articles/52536.html</guid><wfw:comment>http://www.cnitblog.com/chenxin9821/comments/52536.html</wfw:comment><comments>http://www.cnitblog.com/chenxin9821/articles/52536.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/chenxin9821/comments/commentRss/52536.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/chenxin9821/services/trackbacks/52536.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt"><strong>版权声明</strong>：可以任意转载，但转载时必须标明原作者charlee、原始链接<a href="http://tech.idv2.com/2008/08/19/load-yaml-with-perl/"><font color=#448608>http://tech.idv2.com/2008/08/19/load-yaml-with-perl/</font></a>以及本声明。<br><br><br>Perl对YAML的支持很好，著名的Plagger就是用YAML作为配置文件的。</p>
<p style="FONT-SIZE: 10pt">在Perl中读取YAML文件也很简单。常用的模块就是YAML，这是个纯Perl的实现，速度慢，但可以跨平台运行。如果追求运行速度而不在乎平台问题，可以使用YAML::Syck和YAML::XS，两者都是C语言的实现。 YAML::Syck的C语言部分基于libsyck，而YAML::XS的C语言部分基于libyaml。两者相比，YAML::XS稍稍快一点，而且它精确地实现了YAML标准1.1版的内容。</p>
<!-- end Pukiwiki generated code--><!-- begin Pukiwiki generated code-->
<p style="FONT-SIZE: 10pt">用下面的john.yaml作为例子（从<a href="http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/">IBM网站</a>copy过来的）：</p>
<pre>name: John Smith
age: 37
spouse:
name: Jane Smith
age: 25
children:
- name: Jimmy Smith
age: 15
- name: Jenny Smith
age: 12</pre>
<p style="FONT-SIZE: 10pt">用YAML::Syck需要先安装YAML-Syck包，然后：</p>
<pre>#!/usr/bin/perl
use YAML::Syck;
use Data::Dumper;
$yaml = LoadFile("john.yaml");
print Dumper($yaml);</pre>
<p style="FONT-SIZE: 10pt">输出结果：</p>
<pre>$VAR1 = {
'spouse' =&gt; {
'name' =&gt; 'Jane Smith',
'age' =&gt; '25'
},
'name' =&gt; 'John Smith',
'children' =&gt; [
{
'name' =&gt; 'Jimmy Smith',
'age' =&gt; '15'
},
{
'name' =&gt; 'Jenny Smith',
'age' =&gt; '12'
}
],
'age' =&gt; '37'
};</pre>
<p style="FONT-SIZE: 10pt">用YAML::XS需要先安装YAML-LibYAML包，然后</p>
<pre>#!/usr/bin/perl
use YAML::XS;
use Data::Dumper;
open FH, "john.yaml";
$yaml_content = do { local $/; &lt;FH&gt;; };
close FH;
$yaml = Load($yaml_content);
print Dumper($yaml);</pre>
<img src ="http://www.cnitblog.com/chenxin9821/aggbug/52536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/chenxin9821/" target="_blank">金鳞</a> 2008-12-11 13:53 <a href="http://www.cnitblog.com/chenxin9821/articles/52536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>