23

デッドコードやその他の潜在的な問題をキャッチするPerl用のlintを探しています。助言がありますか?

私は持っています

use strict;
use warnings;

すでにですが、もっと欲しいです。

4

4 に答える 4

20

Perl::Criticはあなたの友達です。Test :: Perl :: Criticalを使用して、コードの作成者テストに組み込みます

于 2011-07-26T19:14:22.013 に答える
14

Perlにはlintに直接相当するものはありません。その理由の大部分は、PerlがCほど多くの方法で首を吊るす方法を提供していないことです。Perlの「lint」の基本バージョンは次のとおりです。

perl -Mstrict [-Mdiagnostics] -cw <file>

これにより、perlは、制限と警告がオンになっている指定されたファイルをコンパイルします(ただし実行はしません)。より詳細なメッセージが必要な場合は診断を使用でき、簡潔なメッセージで十分な場合は診断を省略できます。

もっと何かが必要な場合は、 Perl :: Criticを使用してみてください。ただし、これも実際にはリントではないことに注意してください。lintは、主にエラーに関係します(たとえば、コンパイルの妨げ、ランタイムエラーのトリガー、移植性の欠如、未定義動作への依存など)。Perl :: Criticは、コーディング標準の実施に重点を置いています。いくつかの重複はありますが、それらは非常に異なるものです。

于 2011-07-26T20:29:56.007 に答える
5

を使用しB::Lintます。OLintを引数としてモジュールを呼び出すことにより、コマンドラインで使用できます。例:

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
于 2012-08-09T08:07:17.003 に答える
4

Perl :: Criticに加えて、新しいPerl::Lintを見たいと思うかもしれません。

于 2014-11-25T18:03:31.470 に答える