我理解Smart :: Comments不应该用在生产代码中,因为它是一个源过滤器。
但是,我一直在我的开发代码中使用Smart::Comments
,然后在将代码发送到生产环境之前注释掉“use”行。
鉴于我将在我的开发代码中使用它,我应该特别关注什么?我搜索了互联网,没有找到任何我应该担心的原因,除了源过滤器是“坏主意”或“邪恶”或者它们永远不应该在生产代码中使用。
更新: 我现在在 vim 中使用键绑定来实现SinanÜnür的方法:
map <Leader>c <Esc>:!perl -MSmart::Comments %<CR>
答案 0 :(得分:10)
我不想放:
use Smart::Comments;
在我的代码中。当我确实使用Smart::Comments
时,我使用:
$ perl -MSmart::Comments test.pl
这样,生产代码中就不会使用Smart::Comments
。
答案 1 :(得分:5)
我是Smart :: Comments的忠实粉丝,它在我们的代码,开发和生产副本中被调用。我很少将它用于进度条,主要用于断言和调试输出。
然而,实践是使用以下形式将其拉入:
use Smart::Comments -ENV;
如果未设置环境变量Smart_Comments,则Smart :: Comments完全无效。
两全其美。
答案 2 :(得分:4)
源过滤器错误有问题,因为它们使用不完美的解析器来重写代码。只要过滤器管理您提供的代码,一切都很有效。
当您添加破坏过滤器的内容时,整个系统会自行破坏并且您会遇到奇怪的错误。
如果使用调试器,源过滤器也会混淆调试器,这可能是个问题。
答案 3 :(得分:2)
我对源过滤器部分没有意见。但请看一下Smart::Comments
的概要。他们可能很聪明,但你最终得到的东西很难被称为“评论”。如果您需要进度条,请继续,明确添加一个。如果你需要评论某些内容,那么请让下一个阅读你的来源的人理解你的意思。
答案 4 :(得分:1)
Smart ::评论是专门以这种方式编写的,当你注释掉“使用Smart :: Comments”时,它只是评论,所以程序根本不受影响。其他模块存在更严重的问题,例如当您无法获得确切的错误行数时。