我正在寻找 Perl 的 lint,它可以捕获死代码和其他潜在问题。有什么建议么?
我有
use strict;
use warnings;
已经,但我想要更多。
我正在寻找 Perl 的 lint,它可以捕获死代码和其他潜在问题。有什么建议么?
我有
use strict;
use warnings;
已经,但我想要更多。
Perl::Critic是你的朋友。我使用Test::Perl::Critic并将其构建到我的代码的作者测试中
Perl 没有直接等效于 lint 的方法。很大一部分原因是 Perl 没有提供像 C 那样多的方法来吊死自己。Perl 的“lint”的基本版本是这样的:
perl -Mstrict [-Mdiagnostics] -cw <file>
这会导致 perl 编译(但不运行)指定的文件,并打开限制和警告。如果您想要更详细的消息,则可以使用诊断,如果简洁的消息对您来说足够了,则可以将其排除在外。
如果您想要更多尝试使用Perl::Critic,但请注意这也不是真正的 lint。lint 主要关注错误(例如,会阻止编译、触发运行时错误、不可移植、依赖未定义行为等的事情)。Perl::Critic 更关注编码标准的执行。虽然有一些重叠,但它们是非常不同的东西。
使用B::Lint
. O
您可以通过调用带有 Lint 作为参数的模块在命令行上使用它,例如:
you@there:~/sandbox$ perl -MO=Lint Some.pm
Implicit scalar context for array in logical and (&&) at Some.pm line 121
Implicit scalar context for array in conditional expression at Some.pm line 49
Implicit scalar context for array in logical and (&&) at Some.pm line 132
Some.pm syntax OK
除了 Perl::Critic 之外,您可能还想查看更新的Perl::Lint。