使模板成为有效的Perl文件

时间:2016-04-20 18:54:20

标签: perl preprocessor

我在Perl中编写了自己的Perl预处理器。当然。

我有一个模板文件,其中包含有效的Perl语法,除了像这样的语句

$VAR{ 'LABEL' } =
#include dir/PRECOMPILED.pl
;

其中PRECOMPILED.pl包含使用Data :: Dumper生成的匿名哈希,例如

{
    'a' => 1,
    'b' => 2,
}

当我预处理模板时,它会在模板中包含PRECOMPILED.pl,并使用有效的Perl语法生成一个新文件。

是否有一种很好的方法可以使上面的模板行也是一个有效的Perl程序语句,这样如果预处理器没有运行,我可以在程序的后面检查$ VAR {'LABEL'}是否有内容?

例如

if( $VAR{ 'LABEL' } ){
    # do something
}

2 个答案:

答案 0 :(得分:1)

您可以使用do声明:

$VAR{LABEL} = do {
#include dir/PRECOMPILED.pl
};

但是这个解决方案有副作用(如果重要的话):do创建一个新范围。

答案 1 :(得分:0)

我发现:

$VAR{ 'LABEL' } = (
#include dir/PRECOMPILED.pl
)[0];

也有效。