0

YAML 構成を作成したい。同じブロックを何度も書く労力を減らすために、その中に perl コードを入れることができるファイルです。または他の操作のために。YAML ファイル内に次のようなものを入れたいと思います。

---
    `my $a = 1;`
    `if($a){`
    foo: bar
    `}else{`
    foo: baz
    `}
...

明らかなように、この例では、キー「foo」に値「bar」を割り当てたいと考えています。

これは良い考えですか、それとも悪い考えですか? 後者の場合、ファイルとそのようなファイルのプリプロセッサを書き込む最良の方法は何ですか?

4

1 に答える 1

3

これは良い考えではありませんが、改善することはできます。

次の 2 つの方法があります。

  1. YAML / JSON ファイルを、標準の Perl テンプレート システムの 1 つのテンプレートとして扱います。

    Embperl は私の意見では良い候補ですが、それは私がよく知っているからです。制御フローをサポートする任意のテンプレート フレームワークが適合します。

    このように、独自の言語/構文を記述する必要はありません。そして、生成された最終的な YAML/XML/JSON を純粋な形式で取得するため、カスタム パーサーは必要ありません。

  2. Perl ベースのフォーマットを作成します。

    たとえば、構成は、本質的に評価可能な (または評価可能なdo) コード チャンクである Perl コードのチャンクであり、その結果、構成ハッシュが生成されます。

    結果のハッシュ構造は任意のものにすることができますが、必要に応じて元の JSON/YAML をミラーリングし、標準の変換ツールを使用して変換することができます。

于 2013-07-16T01:24:02.933 に答える