我想创建YAML配置。我可以在其中放入perl代码的文件,以减少多次写入相同块的工作量。或任何其他操作。我希望在我的YAML文件中有这样的东西:
---
`my $a = 1;`
`if($a){`
foo: bar
`}else{`
foo: baz
`}
...
很明显,我希望在此示例中为键'foo'指定值'bar'。
这是好主意还是坏主意?如果是后者,那么为这样的文件编写文件和预处理器的最佳方法是什么?
答案 0 :(得分:3)
这不是一个好主意,但可以做得更好。
您有两种方法:
将您的YAML / JSON文件视为标准Perl模板系统之一的模板。
在我看来,Embperl是一个很好的候选人,但那是因为这是我非常熟悉的。任何支持控制流的模板框架都适合。
这样,您不需要编写自己的语言/语法;并且您以纯粹的形式获得了最终的YAML / XML / JSON,因此不需要自定义解析器。
创建基于Perl的格式。
E.g。您的配置是一大块Perl代码,实质上是一个可评估的(或do
- 能)代码块,从而产生配置哈希。
结果哈希结构可以是您想要的任何内容,但是如果您希望它,它可以镜像原始的JSON / YAML,并且可以使用标准转换工具转换为一个。