我有什么模块可以帮助我编写更好的代码吗?

时间:2012-07-20 02:58:22

标签: perl code-analysis

我正在使用以下命令来测试我的perl代码:

perl -MB :: Lint :: StrictOO -MO = Lint,all,oo -M-circular :: require -M-indirect -Mwarnings :: method -Mwarnings :: unused -c $ file

在perl版本低于5.10的系统上,我也使用uninit。

我也在使用Perl :: Critic和Perl :: Tidy并根据自己的喜好设置了合适的rc文件。

这些模块在帮助我打破首次学习perl时学到的一些坏习惯方面做得非常出色。

当我陷入困境时,是否还有更多的模块或pragma会让我恢复正常和狭窄?

使用测试,并指出了Test :: *系列模块和一些好书。这些新信息让我重新考虑了有关测试和代码技能构建之间关系的一些假设。这些都受到赞赏,并且已经在研究和投入使用。

在我看来,这些是整体的两个独立部分。 'perl -c',Perl :: Critic和Perl :: Tidy在编写代码和执行代码之前都有所帮助。 Devel :: Cover,Devel :: NYTProf和Tests在执行代码期间和之后发生。

良好的开发决定了一个迭代过程,因此将运行测试,并且代码一次又一次地开发,但我们仍然存在这种分离。

在我看来,答案的重点是代码的“执行期间和执行后”。再次,非常感谢。我可以假设我的'写作和预执行'部分很好吗?至少,就像pragma,模块和实用程序一样。

2 个答案:

答案 0 :(得分:4)

我有点担心您使用的是Perl 5.9。有两个原因。

首先它有点老了。 5.9.0于2003年发布,5.9.5(5.9.x系列中的最后一个版本)于2007年发布。从那时起,Perl就有了几个高质量版本。

其次(最重要的),5.9是Perl的不稳定开发版本。 5.9基本上是最终导致Perl 5.10.0的一系列实验。使用它的唯一原因是测试5.10将是Perl的稳定版本。现在没有人应该使用它。

答案 1 :(得分:2)

您似乎没有测试您的代码,只是检查它是否会编译。我建议您查看Test :: More(这使得编写实际测试变得简单易用),Test :: Class(这使得处理非常大的测试套件变得更容易)和Devel :: Cover(查看代码的哪些部分)你的测试涵盖了哪些不是。)