source filters的“常识”是坏的,不应该在生产代码中使用。
当回答a similar,but more specific question时,我找不到任何良好的参考资料,可以清楚地解释为什么过滤器不好,何时可以安全使用。我认为现在是创造一个的时候了。
为什么源代码过滤器不好?
>什么时候可以使用源过滤器?
解决方法
只有perl可以解析Perl(见
this example):
@result = (dothis $foo,$bar); # Which of the following is it equivalent to? @result = (dothis($foo),$bar); @result = dothis($foo,$bar);
这种歧义使得很难编写始终成功并做正确事情的源过滤器。当事情出错时,调试是尴尬的。
在崩溃和燃烧几次之后,我开发了迷信方式,从不试图写另一个源过滤器。
我偶尔使用Smart::Comments进行调试。当我这样做,我加载模块在命令行:
$ perl -MSmart::Comments test.pl
以避免在生产代码中保持启用的任何机会。