如果我在开发代码中使用Smart :: Comments,我应该有什么顾虑?

时间:2009-11-23 19:58:07

标签: perl source-filter

我理解Smart :: Comments不应该用在生产代码中,因为它是一个源过滤器。

但是,我一直在我的开发代码中使用Smart::Comments,然后在将代码发送到生产环境之前注释掉“use”行。

鉴于我将在我的开发代码中使用它,我应该特别关注什么?我搜索了互联网,没有找到任何我应该担心的原因,除了源过滤器是“坏主意”或“邪恶”或者它们永远不应该在生产代码中使用。

更新: 我现在在 vim 中使用键绑定来实现SinanÜnür的方法:

map <Leader>c <Esc>:!perl -MSmart::Comments %<CR>

5 个答案:

答案 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”时,它只是评论,所以程序根本不受影响。其他模块存在更严重的问题,例如当您无法获得确切的错误行数时。