YAMLについてちょっと調べてみた

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 );

見たいなコードでダンプして調べると分かりやすいかも。

nyarla が大体

Scrapbox でコメントや意見を書く