Chr*_*oms 5 perl source-filter
我知道Smart :: Comments不应该用在生产代码中,因为它是一个源过滤器.
但是,我一直在使用Smart::Comments我的开发代码,然后在将代码发送到生产之前注释掉"use"行.
鉴于我将在我的开发代码中使用它,我应该特别关注什么?我搜索了互联网,没有找到任何我应该担心的原因,除了源过滤器是"坏主意"或"邪恶"或者它们永远不应该在生产代码中使用.
更新:我现在在vim中使用密钥绑定来实现SinanÜnür的方法:
map <Leader>c <Esc>:!perl -MSmart::Comments %<CR>
Run Code Online (Sandbox Code Playgroud)
Sin*_*nür 10
我不想放:
use Smart::Comments;
Run Code Online (Sandbox Code Playgroud)
在我的代码中.当我确实使用时Smart::Comments,我使用以下命令调用脚本:
$ perl -MSmart::Comments test.pl
Run Code Online (Sandbox Code Playgroud)
这样,就没有机会Smart::Comments在生产代码中使用.
我是Smart :: Comments的忠实粉丝,它在我们的代码,开发和生产副本中被调用.我很少将它用于进度条,主要用于断言和调试输出.
但是,实践是使用以下形式:
use Smart::Comments -ENV;
Run Code Online (Sandbox Code Playgroud)
如果未设置环境变量Smart_Comments,则Smart :: Comments完全是惰性的.
两全其美.
源过滤器存在严重问题,因为它们使用不完美的解析器来重写代码。只要过滤器管理您提供给它的代码,一切都会很好。
当你添加一些破坏过滤器的东西时,整个系统就会自毁,并且会出现奇怪的错误。
源过滤器还会使调试器感到困惑,如果您使用调试器,这可能会成为一个问题。