在YAML文件中嵌入perl

时间:2013-07-16 00:36:44

标签: perl embed yaml

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

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

很明显,我希望在此示例中为键'foo'指定值'bar'。

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

1 个答案:

答案 0 :(得分:3)

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

您有两种方法:

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

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

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

  2. 创建基于Perl的格式。

    E.g。您的配置是一大块Perl代码,实质上是一个可评估的(或do - 能)代码块,从而产生配置哈希。

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