YAML についてちょっと調べてみた。
Plagger とかの設定ファイルフォーマットとして使われている YAML の仕様についてちょっと調べてみた。どちらかというと、YAML を書きたい人向け。
- YAML の仕様書 の書き方にかかわるとこだけを読んで、なんとなく分かったことを抜き出しているだけなので、内容が抜けてたり、用語とかが微妙に間違ってるかもしれません。
なんかおかしいところがあれば、コメントなりで指摘してください。あと、正確な仕様を知りたい人は、 YAML の仕様書 を読んでください。
ハッシュ
hash: name: value foo: bar # こうも書ける hash: { name: value, foo: bar }
配列
array: - foo - bar - baz # こうも書ける array: [[ foo, bar, baz ]]
スカラー
# 改行がスペースに変換される foo: text text text text text text text text # 改行は保存される bar: | text text text text text text text text # 改行と空行が保存される baz: > text text text text text text text text text text text text # エスケープ・シーケンスが解釈される/Perlのqq{}みたいなもの(?) hoge: "Hello, world\n" # エスケープ・シーケンスが解釈されない/Perlのq{}みたいなもの(?) huge: 'AAA BBB CCC'
参照
# 参照の定義 foo: &ref bar # 参照の使用 bar: *ref
こんな感じ
書く分にはこれくらいの知識でかけるかも。
だた、一つのファイルに複数の YAML 書けたり、スカラーの型指定したりということまではいまいち理解しきってないので、そのあたり抜けてます。
あと読み込んだ YAML がどういう構造になるかは、
#!/usr/bin/perl use strict; use warnings; use YAML (); use Data::Dumper (); my $yaml = <<'__YAML__'; # ここにYAMLを書く __YAML__ my $data = YAML::Load( $yaml ); print Data::Dumper::Dumper( $data );
見たいなコードでダンプして調べると分かりやすいかも。