YAML::Tinyでコロンを利用する方法
YAML::Tinyでコロンを利用する方法を紹介します。
1.問題点
次のようなYAMLデータを書いてみました。
test: ok:
下のPerlスクリプトでYAMLデータを読み込んでみました。
#!/usr/bin/perl
use strict;
use YAML::Tiny;
my $data= YAML::Tiny->new;
$data = YAML::Tiny->read( 'sample1.yaml' );
print $data->[0]->{test};
スクリプトを実行したところ、下記のエラーが発生しました。
% ./test.pl
YAML::Tiny found illegal characters in plain scalar: 'OK:' at test.pl line 8
また、キーにコロンを含むパターンも試してみました。
test:: ok
スクリプトは下記です。
#!/usr/bin/perl
use strict;
use YAML::Tiny;
my $data= YAML::Tiny->new;
$data = YAML::Tiny->read( 'sample1.yaml' );
print $data->[0]->{'test:'};
この場合、下記のエラーが発生しました。
% ./test.pl
YAML::Tiny failed to classify line 'test: OK:' at test.pl line 8
こちらは「Tinyは'test: OK:'行の分類に失敗した」というエラーのようです。
おそらく、値やキーに含まれるコロンがこのままのフォーマットでは適正にパースされないようです。
ということで、YAML::Tinyでコロンを利用する方法を紹介します。
2.YAML::Tinyでコロンを利用する
YAML::Tinyでコロンを利用するには、値全体をクォーテーションで括ります。
test2: "ok:"
実行結果は下記のとおりです。
% ./test.pl
ok:
シングルクォーテーションでも大丈夫です。
test2: 'ok:'
値ではなく、キーにコロンが含まれる場合も同様です。
"test:": ok
実行結果は下記のとおりです。
% ./test.pl
ok
3.参考サイト
参考サイトは下記です。ありがとうございました。
Posted by yujiro このページの先頭に戻る
- Perlでansibleライブラリを作成する方法
- perlのCPANモジュールからRPMを作成する方法
- Perlで「Subroutine permission redefined at~」を抑止する方法
- XML::Simpleのインストールでエラーになる場合の対処
- YAML::Tinyで「YAML::Tiny found bad indenting in line~」というエラーになる場合の対処
- Perlの正規表現を使って文字列をまとめて取得する方法
- Perlのハッシュでキーの有無を調べる方法
- perlで配列の途中の要素を削除する方法
- Perlで改行コードがCRのファイルを読み込む方法
- Perlで「Possible precedence issue with control flow operator」という警告の対処
- PerlのLWPで「Can't verify SSL peers without knowing which Certificate Authorities to trust」というエラーになったときの対処
- Perl+Windowsでファイルを再帰的にリネームする方法
- Perlプログラムの中でファイルの一部を書き換える方法
- Perlの「Bareword "%s" not allowed while "strict subs" in use~」というエラーについて
- Perlで文字列結合しながらs///演算子で置換する方法
トラックバックURL
コメントする
greeting