YAMLについてちょっと調べてみた
読了まで:約0分
YAML についてちょっと調べてみた。
Plagger とかの設定ファイルフォーマットとして使われている 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 );
見たいなコードでダンプして調べると分かりやすいかも。