病み上がりで本調子でなかったのかも知れません。などとさり気なく逃げ道を作りつつ、YAML::Anyで実際に使われるYAMLパーサー/リーダーの判別法について、前の記事をしれっと訂正しておきます。
素直にYAML::Any->implementationすべきでした。確かに、YAML系モジュールが複数読まれている場合には、%INCのハッシュキーを見たり、或いはClass::Inspector->loadedで見たりしても無意味です。
また、前の記事で「たまたま何もしなくても良かった」という事案は、YAML::XSの恩恵であることを補足しておきます。
結局CLI系のライブラリにリファクタリングしたので、そのポインターを貼っておきます。
SimpleLinks::CLI::Batch::InitializationYAML::Anyでパースした時のUTF8フラグ付与処理の差異を_read_queryメソッドで吸収しています。examples/app/p5-ark-sample-simplelinks/tool/initialization.pl- DBに食わせるコマンド用スクリプト(改訂版)です。
t/80_batch/00_initialize.t- 処理のテストです。
YAML::Oldのロード後にYAMLをロードするとredefineワーニングが出るので、全5種類のパーサー/リーダーを使ってのテストは断念しています。追記:テスト時の例外送出を回避するよう、初出時から若干コード(リンク先)を変えました。
コメントする