問題タブ [perl-critic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
515 参照

perl-critic - perl v5.8.8 を使用して centos 6.4 に Perl-Critic-1.119 をインストールします。

perl v5.8.8 を使用して centos 6.4 に Perl-Critic-1.119 をインストールする方法はありますか? cpanm を使用しようとするとエラーが発生します:

Perlをアップグレードできません。

0 投票する
1 に答える
109 参照

perl - Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers の使用方法

モジュール Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers を使用して、.C ファイルでのみマジック ナンバーをチェックしたい

Perl::Critic を使用すると、Can't parse code: Unknown error parsing Perl document というエラーが表示されます

Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers を使用すると、Can't locate object method "new" via package "Perl::Critic" というエラーが発生します

0 投票する
3 に答える
255 参照

perl - 未使用の関数が見つからないことを Perl に警告させる

no_such_func() が呼び出されることはないため、上記は -w にもかかわらずエラーなしで実行されます。

使用していないものも含め、参照するすべての関数/モジュールを Perl にチェックさせるにはどうすればよいですか?

より現実的なケースでは、一部の関数は特別な場合にのみ呼び出される可能性がありますが、それでもそれらが存在することを確認したいと思います.

編集: perlcritic をインストールしましたが、まだ何か間違っていると思います。このファイルを作成しました:

そして、perlcritic は問題ないと言いました ("source OK")。no_such_func() が存在しないことを静的解析で検出できるのでしょうか? プログラムも正常に実行されます (出力は生成されません)。

0 投票する
2 に答える
421 参照

perl - 常にfalseと評価されるPerl条件付きで到達不能なコードを検出する方法は?

私は Perl に不慣れで、現在、大規模でかなり面倒な Perl プロジェクトの整理と保守を任されています。私は perl-critic を使用して、コードの問題を検出するのに役立てています (また、ベスト プラクティスを教えてくれます)。

既存のコードには、コーダーが到達不能なコードを作成した場所があります。たとえば、コード ブランチの一部をコメント アウトする怠惰な方法として、「&& 0」を追加しました。

perl または Critic が、そのような場合 (条件が false に評価される定数値を持つ場合) に到達できないコードについて警告してくれることを期待していましたが、そうではありません。

この種のものを確実に検出できる、使用できるツールまたはスクリプトはありますか?

明らかに、ソースで '&& 0' を検索できますが、コード作成者が if ステートメントに '&& 0' を追加する以外にも、到達不能なコードを作成する方法がいくつかあります。

0 投票する
1 に答える
3048 参照

perl - Perl::Critic 'Code before strictures' を Modern::Perl を使用する場合

strict や warnings を使用するよりも Modern::Perl を使用する方がベスト プラクティスであることを理解しています。

デフォルトのオプションでは、Perl::Critic v1.121 は、「use Modern::Perl」がコードの前にある場合でも、strict の前のコードについて文句を言います。

質問: 以下のように perlcriticrc 設定を更新するための最良の解決策はありますか、それとももっと良い方法がありますか?

以下の構成のソース

猫 ~/.perlcriticrc

また、注記: 開発者のディスカッションはこちら

0 投票する
1 に答える
213 参照

perl - 「変数は以前の宣言をマスクします」という警告が表示されないのはなぜですか?

これは、同じ名前の 2 つの変数を含めるように作成されたスクリプト全体です。一方は他方をマスクしています。

このスクリプトを実行すると、次の出力が得られますが、特に警告は表示されません。

2 番目の変数を囲む中括弧を削除し$hiて、最初の変数と同じスコープにすると、次の$hi警告が表示されます。

ただし、変数が同じスコープにない場合でも、この警告が必要です。変数名が別の変数名を隠しているたびに警告が必要です。この警告を有効にするにはどうすればよいですか? これについて警告する、有効にできる Perl Critic ポリシーはありますか?

0 投票する
3 に答える
564 参照

perl - ProhibitExcessComplexity を有効にしてスクリプトから perl 批評家を実行する方法は?

Subroutines::ProhibitExcessComplexityを有効にしてスクリプトから Perl 批評家を実行するにはどうすればよいですか? 私は次のことを試しましたが、複雑な 500 行以上のサブルーチンにフラグを立てていませんでした。私は持っていませ.perlcriticrcん(そこにあることも望んでいません)

私のPerl::Criticバージョンは1.116