今回は、
YAML.pm
YAML.
ダウンロード | http:// id/ |
---|---|
ドキュメント | http:// YAML-0. |
バージョン | 0. |
作者 | Brian Ingerson、 |
インストール
インストールは、
$ sudo cpan YAML
使い方
YAML.
- YAML::Load($string)
- YAMLドキュメントを読み込む
- YAML::Dump($data)
- データをYAMLドキュメントに変換する
use strict;
use YAML ();
use Data::Dumper ();
## YAMLドキュメントの読み込み
my $filename = "example.yaml" ;
open(IN, $filename) or die("cannot open file.");
read(IN, my $input, (-s $filename));
close(IN);
my $ydoc = YAML::Load($input);
print Data::Dumper::Dumper($ydoc);
## または
## my $ydoc = YAML::LoadFile($filename);
## データをYAMLドキュメントへ変換
print YAML::Dump($ydoc);
タグを変更する
YAML::Syck.
日本語の扱い
日本語でも問題なく使えるようです。
不具合
筆者が試した限りでは、
- YAML::Load()
- 8進数や16進数が解釈されない
「null」 が解釈されず、 文字列の 「"null"」 となる 「true」 「false」 「yes」 「no」 「on」 「off」 が解釈されず文字列のまま - 日付や日時
(timestamp) が解釈されず文字列のまま - ルート要素がフロースタイルやスカラーだとエラー
- マッピングのマージが未サポート
- マッピングのキーに日本語を指定するとエラーになる場合がある
(リスト3)
- 姓: フグ田
名: サザエ
その他
YAML.
YAML::Syck.pm
YAML::Syck.
ドキュメント | http:// YAML-Syck-1. |
---|---|
ダウンロード | http:// /A/ |
バージョン | 1. |
作者 | Audrey Tang |
インストール
インストールは、
$ sudo cpan YAML::Syck
使い方
YAML::Syck.
- YAML::Syck::Load($string)
- YAMLドキュメントを読み込む
- YAML::Syck::Dump($data)
- データをYAMLドキュメントに変換する
また必ず$YAML::Syck::ImplicitTypingを1に設定してください。これをしないと、
use strict;
use YAML::Syck ();
use Data::Dumper ();
## YAMLドキュメントの読み込み
my $filename = "example.yaml";
open(IN, $filename) or die("cannot open file.");
read(IN, my $input, (-s $filename));
close(IN);
$YAML::Syck::ImplicitTyping = 1; ## 必須!
my $ydoc = YAML::Syck::Load($input);
print Data::Dumper::Dumper($ydoc);
## データをYAMLドキュメントへ変換
print YAML::Syck::Dump($ydoc);
タグを変更する
YAML::Syckでタグを変更する方法はないようです。
日本語の扱い
読み込み
書き出し
不具合
YAML::Syck.
YAML::XS
YAML::XSは、
ダウンロード | http:// YAML-LibYAML/ |
---|---|
ドキュメント | http:// YAML-LibYAML-0. |
バージョン | 0. |
作者 | Ingy döt Net |
インストール
インストールは、
$ sudo cpan YAML::XS
使い方
YAML::XSの使い方は、
use strict;
use YAML::XS ();
use Data::Dumper ();
## YAMLドキュメントの読み込み
my $filename = "example.yaml";
open(IN, $filename) or die("cannot open file.");
read(IN, my $input, (-s $filename));
close(IN);
my $ydoc = YAML::XS::Load($input);
print Data::Dumper::Dumper($ydoc);
## または
## my $ydoc = YAML::XS::LoadFile($filename);
## データをYAMLドキュメントへ変換
print YAML::XS::Dump($ydoc);
タグを変更する
YAML::XSでタグを変更する方法はないようです。
日本語の扱い
UTF-8であれば、
不具合
筆者が試した限りでは、
- YAML::XS::Load()
- 8進数や16進数が解釈されない
「null」 が解釈されず、 文字列の 「"null"」 となったまま 「yes」 「no」 「on」 「off」 が解釈されず文字列のまま - 日付や日時
(timestamp) が解釈されず文字列のまま - マッピングのマージ
(<<) が未サポート
- YAML::XS::Dump()
- 特になし
その他
YAML::XSは、