0

我想创建 YAML 配置。我可以在其中放入 perl 代码的文件,以减少多次编写相同块的工作量。或用于任何其他操作。我想在我的 YAML 文件中有这样的东西:

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

很明显,在本例中,我希望为键 'foo' 分配值 'bar'。

这是个好主意还是坏主意?如果是后者,编写文件和预处理器的最佳方法是什么?

4

1 回答 1

3

这不是一个好主意,但可以做得更好。

你有两种方法:

  1. 将您的 YAML / JSON 文件视为标准 Perl 模板系统之一的模板。

    在我看来,Emperl 是一个很好的候选者,但那是因为它是我非常熟悉的。任何支持控制流的模板框架都适合。

    这样,您无需编写自己的语言/语法;并且您会以纯形式获得最终生成的 YAML/XML/JSON,因此不需要自定义解析器。

  2. 创建基于 Perl 的格式。

    例如,你的配置是一大块 Perl 代码,本质上是一个 eval-able(或do-able)代码块,导致配置散列。

    结果哈希结构可以是任何你想要的,但如果你希望它是,它可以镜像原始 JSON/YAML,并且可以使用标准转换工具转换为一个。

于 2013-07-16T01:24:02.933 回答