8

我正在使用以下命令来测试我的 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 时养成的一些坏习惯方面做得很好。

当我搞砸时,是否还有更多的模块或编译指示可以让我重回正轨?

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

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

良好的开发需要一个迭代过程,因此将运行测试,并且一遍又一遍地开发代码,但我们仍然有这种分离。

在我看来,答案的重点是代码的“执行期间和执行后”。再次,非常感谢。我可以假设我已经很好地完成了“写作和预执行”部分吗?至少,就编译指示、模块和实用程序而言。

4

2 回答 2

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 的稳定版本。现在根本没有人应该使用它。

于 2012-07-20T10:49:41.847 回答
2

您似乎没有在测试您的代码,只是检查它是否可以编译。我建议你看一下 Test::More (这使得编写实际测试变得又好又容易)、 Test::Class (这使得处理非常大的测试套件更容易)和 Devel::Cover (看看你的代码的哪些位被你的测试覆盖,而哪些不是)。

于 2012-07-20T10:54:35.377 回答