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

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

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。