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 );
見たいなコードでダンプして調べると分かりやすいかも。
Comments
最新のコメント20件を表示しています