これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドperlcriticpです。
プログラム:
NAME
"perlcritic" -Perlソースを批評するためのコマンドラインインターフェイス。
SYNOPSIS
perlcritic [-12345 | -残忍な| -残酷| -厳しい| -船尾| - 優しい]
[-重大度番号| 名前] [{-p | --profile}ファイル| --noprofile]
[--top [number]] [--theme expression] [--include pattern]
[-パターンを除外] [{-s | --single-policy}パターン]
[-のみ| --noonly] [--profile-strictness {警告|致命的|静か}]
[--強制 | --noforce] [--statistics] [--statistics-only]
[-カウント| -C] [--verbose {number | format}] [--allow-unsafe]
[-色| --nocolor] [--pager pager] [--quiet]
[--color-severity-最高の色の指定]
[--color-severity-high color_specation]
[--color-severity-medium color_specation]
[--color-severity-low color_specation]
[--color-severity-最低の色の指定]
[--違反のあるファイル | -l]
[-違反のないファイル| -L]
[--プログラム拡張子 ファイル名拡張子]
{ファイル| ディレクトリ| STDIN}
perlcritic --profile-proto
perlcritic {--list | -リスト対応| -リスト-テーマ| --docパターン[...]}
perlcritic {--help | -オプション| -男| - バージョン }
DESCRIPTION
「perlcritic」はPerlソースコードアナライザーです。 これは、実行可能なフロントエンドです。
Perl :: Criticエンジン。扱いにくい、読みにくい、エラーが発生しやすい、または
コード内の型破りな構造。 ほとんどのルールは、ダミアン・コンウェイの
本 パール おすすめ! プラクティス。 ただし、「perlcritic」は PBPの実施に限定され、
コンウェイと矛盾するルールもサポートします。 すべてのルールを簡単に構成できます。
お好みに合わせて無効にします。
このドキュメントでは、このコマンドを実行する方法についてのみ説明します。 他のすべての情報については、
APIリファレンスおよび代替インターフェースとして、Perl :: Criticのドキュメントを参照してください。
そのもの。
USAGE 例
すべての厄介な詳細に入る前に、ここに取得に役立ついくつかの基本的な使用例があります
あなたが始めました。
#最も重大な違反のみを報告する(重大度= 5)
perlcritic YourModule.pm
#上記と同じですが、STDINから入力を読み取ります
パークリティック
#ディレクトリの下にあるすべてのPerlファイルを再帰的に処理します
perlcritic / some / directory
#それほど重大ではない違反も報告します(重大度> = 4)
perlcritic -4 YourModule.pm
#上記と同じですが、名前付き重大度レベルを使用します
perlcritic --stern YourModule.pm
#重大度に関係なく、すべての違反を報告します(重大度> = 1)
perlcritic -1 YourModule.pm
#上記と同じですが、名前付き重大度レベルを使用します
perlcritic --残忍な YourModule.pm
#「PerlBestPractices」からの違反のみを報告する
perlcritic --theme pbp YourModule.pm
#上位20件の最も重大な違反を報告する(重大度> = 1)
perlcritic --top YourModule.pm
#m / variables / xmsに一致するポリシーの追加の違反を報告する
perlcritic--include変数YourModule.pm
#他の場所からのデフォルトを使用する 〜/ .perlcriticrc
perlcriticrc --profile project / specific / perlcriticrc YourModule.pm
議論
引数は、分析するファイルへのパスです。 複数のファイルを指定できます。
引数がディレクトリの場合、「perlcritic」は以下のすべてのPerlファイルを分析します。
ディレクトリ。 引数が指定されていない場合、入力はSTDINから読み取られます。
OPTIONS
オプション名は一意性に省略でき、singeまたはdoubleで指定できます
ダッシュ、およびオプション値は、スペースまたは「=」でオプション名から区切ることができます(
Getopt :: Long)。 オプション名でも大文字と小文字が区別されます。
「--profileFILE」または「-pFILE」
「perlcritic」に、ファイルを探すのではなく、FILEで指定されたプロファイルを使用するように指示します。
デフォルト .perlcriticrc 現在のディレクトリまたはホームディレクトリにあるファイル。 見る
詳細については、Perl :: Criticの「CONFIGURATION」を参照してください。
"--noprofile"
「perlcritic」に構成ファイルをロードしないように指示し、デフォルトに戻します
すべてのポリシーの構成。
「-重大度N」
「perlcritic」に、「N」より大きい重大度のポリシーのみを適用するように指示します。
重大度の値は、1(最も重大度が低い)から5(最も重大度が高い)の範囲の整数です。 The
デフォルトは5です。特定の「--profile」の場合、「-severity」を減らすと通常は
より多くの違反を生成します。 このオプションのデフォルト値は、
.perlcriticrc ファイル。 ポリシーの「重大度」を再定義することもできます
.perlcriticrc ファイル。 詳細については、「構成」を参照してください。
"-5 | -4 | -3 | -2 | -1"
これらは、「-severity」オプションを設定するための数値ショートカットです。 たとえば、「-4」は
「-重大度4」に相当します。 複数のショートカットが指定されている場合、
制限的なものが勝ちます。 明示的な「--severity」オプションも指定されている場合、すべて
ショートカットオプションは黙って無視されます。 注:番号のXNUMXつを入れないように注意してください
「--top」フラグまたは「perlcritic」の直後の重大度ショートカットオプションは
報告する違反の数として解釈します。
「-重大度の名前」
重大度「5」が最大か最小かを思い出せない場合
制限レベルの場合、次の名前付き値のいずれかを使用できます。
SEVERITY NAME ...は... SEVERITYNUMBERと同等です
-------------------------------------------------- ------
-重大度穏やか-重大度5
-重大度の厳しい-重大度4
-重大度が厳しい-重大度3
-重大度残酷-重大度2
-残忍な重大度-重大度1
"--gentle | --stern | --harsh | --cruel | --brutal"
これらは、「-severity」オプションを設定するための名前付きショートカットです。 たとえば、「-cruel」
「--severity2」と同等です。 複数のショートカットが指定されている場合、
制限的なものが勝ちます。 明示的な「--severity」オプションも指定されている場合、すべて
ショートカットオプションは黙って無視されます。
「-テーマルール」
「ルール」を満たすテーマを持つポリシーのみを適用するように「perlcritic」に指示します。
テーマは、関連するポリシーのグループの任意の名前です。 テーマを組み合わせることができます
任意に複雑な「ルール」を作成するためのブール演算子を使用した名前。 例えば、
以下は、「バグ」と「pbp」のテーマを持つポリシーにのみ適用されます。
$> perlcritic --theme = 'bugs && pbp' MyModule.pm
「--severity」オプションが明示的に指定されていない限り、「-theme」を設定するとサイレントに発生します
「--severity」は1に設定されます。このオプションのデフォルト値は、で設定できます。
.perlcriticrc ファイル。 詳細については、Perl :: Criticの「POLICYTHEMES」を参照してください。
テーマについて。
"--PATTERNを含む"
正規表現「/ PATTERN / imx」に一致する追加のポリシーを適用するように「perlcritic」に指示します。
このオプションを使用して、プロファイルや重大度設定を一時的に上書きします。
コマンドライン。 例えば:
perlcritic --include = layout my_file.pl
これにより、「perlcritic」はすべての「CodeLayout :: *」ポリシーを適用します。
重大度レベルがデフォルトレベルの5未満であるか、無効になっている
自分で .perlcriticrc ファイル。 複数の「--include」オプションを指定でき、次のことができます。
「--exclude」オプションと組み合わせて使用します。 「--exclude」は
ポリシーが両方のパターンに一致する場合は、「-include」よりも優先されます。 あなたは設定することができます
のこのオプションのデフォルト値 .perlcriticrc ファイルにソフトウェアを指定する必要があります。
「-パターンを除く」
正規表現「/ PATTERN / imx」に一致するポリシーを適用しないように「perlcritic」に指示します。
このオプションを使用して、プロファイルや重大度設定を一時的に上書きします。
コマンドライン。 例えば:
perlcritic --exclude = strict my_file.pl
これにより、「perlcritic」は「RequireUseStrict」を適用せず、
「ProhibitNoStrict」ポリシーは、最高の重大度レベルを持っていますが。 あなたはできる
複数の「--exclude」オプションを指定すると、
「--include」オプション。 「--exclude」は「--include」よりも優先されることに注意してください。
ポリシーは両方のパターンに一致します。 このオプションのデフォルト値は、
.perlcriticrc ファイルにソフトウェアを指定する必要があります。
「--single-policyPATTERN」または「-sPATTERN」
正規表現に一致するポリシーモジュールをXNUMXつだけ適用するように「perlcritic」に指示します
「/ PATTERN / ixms」、および他のすべてのポリシーを除外します。 このオプションは、
「--severity」、「-theme」、「-include」、「-exclude」、および「--only」オプション。 例えば:
perlcritic --single-policy = nowarnings my_file.pl
これにより、「perlcritic」は「ProhibitNoWarnings」ポリシーのみを適用します。
重大度レベルの設定に関係なく。 他のポリシーは適用されません。
これは、人が意図するものと同等です...
perlcritic --exclude =。 --include = nowarnings my_file.pl
...ただし、「-exclude」オプションが「--include」をオーバーライドするため、これは機能しません。
オプションを選択します。
このオプションに相当するものは、カスタムプロファイルを作成することで実現できます
必要なポリシーのみを含み、実行中...
perlcritic --profile = customprofile --only my_file.pl
「--top [N]」
ランク付けされた、各ファイルの上位「N」ポリシー違反のみを報告するように「perlcritic」に指示します
それらの重大度によって。 「N」が指定されていない場合、デフォルトで20になります。「-severity」の場合
オプション(またはショートカットのXNUMXつ)が明示的に指定されていない場合、「-top」オプションは
最小の重大度レベルは「1」(つまり「残忍」)です。 ユーザーは再定義できます
ポリシーの重大度 .perlcriticrc ファイル。 詳細については、「構成」を参照してください。
情報。 このオプションのデフォルト値は、 .perlcriticrc
ファイル。 注:重大度ショートカットオプションのXNUMXつをすぐに配置しないように注意してください
「--top」フラグまたは「perlcritic」の後は、違反の数として解釈されます
報告する。
" - 力"
ソース内の魔法の「##批評家なし」の注釈を無視するように「perlcritic」に指示します
コード。 詳細については、「ルールの曲げ」を参照してください。 のデフォルト値を設定できます
あなたのこのオプション .perlcriticrc ファイルにソフトウェアを指定する必要があります。
" - 統計学"
スキャンされているコードと違反が見つかったといういくつかの統計を引き起こします
他の出力の後に報告されます。
「-統計のみ」
「--statistics」オプションと同様ですが、通常の出力を抑制し、
統計情報を表示します。
"--verbose N | FORMAT"
違反を報告するための詳細レベルまたは形式を設定します。 番号( "N")が与えられた場合、
「perlcritic」は、以下で説明する事前定義された形式のXNUMXつを使用して違反を報告します。
文字列( "FORMAT")を指定すると、実際のフォーマット仕様として解釈されます。
「--verbose」オプションが指定されていない場合、デフォルトで4または5になります。
「perlcritic」への引数として複数のファイルが指定されているかどうか。 あなたは設定することができます
のこのオプションのデフォルト値 .perlcriticrc ファイルにソフトウェアを指定する必要があります。
詳細形式の仕様
----------- --------------------------------------- --------------------------------
1 "%f:%l:%c:%m \ n"、
2 "%f:(%l:%c)%m \ n"、
3 "%m at%f line%l \ n"、
4 "行%l、列%cの%m。%e。(重大度:%s)\ n"、
5 "%f:%m行%l、列%c。%e。(重大度:%s)\ n"、
6 "%m、行%l、 '%r'の近く。(重大度:%s)\ n"、
7 "%f: '%r'の近くの行%lの%m。(重大度:%s)\ n"、
8 "[%p]%m、行%l、列%c。(重大度:%s)\ n"、
9 "[%p]%m、行%l、 '%r'の近く。(重大度:%s)\ n"、
10 "%m行%l、列%c。\ n%p(重大度:%s)\ n%d \ n"、
11 "%m、行%l、 '%r'の近く。\ n%p(重大度:%s)\ n%d \ n"
フォーマットは、リテラルとエスケープ文字の組み合わせです。
「sprintf」は動作します。 フォーマットの完全な説明については、String :: Formatを参照してください。
機能。 有効なエスケープ文字は次のとおりです。
エスケープの意味
------- ------------------------------------------- -----------------
%c違反が発生した列番号
%d違反の完全な診断に関する議論
%ePBPの違反またはページ番号の説明
%F違反が発生したファイルの名前だけです。
%f違反が発生したファイルへのパス。
%l違反が発生した行番号
%m違反の簡単な説明
%P違反を作成したポリシーモジュールのフルネーム
%p Perl :: Critical :: Policy ::プレフィックスを含まないポリシーの名前
%r違反の原因となったソースコードの文字列
%C違反の原因となったPPI :: Elementのクラス
%s違反の重大度
これらの形式の目的は、テキストエディタとの互換性を提供することです。
特定の種類の入力を解析するためのインターフェースがあります。 詳細については、「エディタの統合」を参照してください。
それについてのより多くの情報。
" - リスト"
にあるすべてのPerl :: Critical :: Policyモジュールの要約リストを表示します
このマシン。 このオプションリスト を ポリシーに関係なく、 .perlcriticrc or
コマンドラインオプション。 ポリシーごとに、名前、デフォルトの重大度、およびデフォルトのテーマ
示されています。
「--list-enabled」
すべてのPerl :: Critical :: Policyモジュールの要約リストを表示します。 でしょう be
このコマンドを使用して実際にファイルを批評する場合は、強制されます。 これは
複雑なコマンドを作成したり、 .perlcriticrc
ファイルを作成し、どのポリシーが適用されるか(または適用されないか)を正確に確認したい
場合によっては強制されます)。 ポリシーごとに、名前、デフォルトの重大度、およびデフォルト
テーマが表示されます。
"--list-themes"
見つかったPerl :: Critical :: Policyモジュールのすべてのテーマのリストを表示します
このマシンで。
"--profile-proto"
にあるすべてのPerl :: Critical :: Policyモジュールの拡張リストを表示します
このマシン。 ポリシーごとに、名前、デフォルトの重大度、およびデフォルトのテーマは次のとおりです。
ポリシーがサポートする追加のパラメータの名前と同様に表示されます。 The
フォーマットはあなたのプロトタイプとして適しています .perlcriticrc ファイルにソフトウェアを指定する必要があります。
" - それだけ"
あなたの中で明示的に言及されているポリシーのみを適用するようにperlcriticに指示します
.perlcriticrc ファイル。 これは、ポリシーの小さなサブセットのみを使用する場合に役立ちます
他のすべてを無効にする必要はありません。 これのデフォルト値を設定できます
あなたのオプション .perlcriticrc ファイルにソフトウェアを指定する必要があります。
"--profile-strictness {warn | fatal | quiet}"
で見つかった特定の回復可能な問題を処理する方法をperlcriticに指示します .perlcriticrc
または「--profile」オプションで指定されたファイル。 有効な値は「警告」(デフォルト)、
「致命的」、そして「静か」。 たとえば、perlcriticは通常、プロファイルについてのみ警告します
存在しないポリシーを参照しますが、このオプションはこの状況を致命的にする可能性があります。 君は
このオプションのデフォルト値を .perlcriticrc ファイルにソフトウェアを指定する必要があります。
" - カウント"
「-C」
各ファイルの違反の数のみを表示します。 この機能を使用して、すばやく取得します
大量のコードが最も注意を払う必要がある場所を処理します。
" - サファリ"
「Perlのベストプラクティス」の引用をセクション番号として報告する
<http://safari.oreilly.com>実際の本のページ番号の代わりに。 注:これ
機能はまだ実装されていません。
"--color" = item "--color"
このオプションは、ttyに出力するときにオンになります。 設定すると、重大度5と4が色付けされます
それぞれ赤と黄色。 色付けは、Term :: ANSIColorが
インストールされており、Windows以外の環境でのみ機能します。 このスイッチを
色を無効にします。 このオプションのデフォルト値は、 .perlcriticrc
ファイルにソフトウェアを指定する必要があります。
"--pager PAGER_COMMAND_STRING"
設定されている場合、perlcriticはその出力を指定されたPAGER_COMMAND_STRINGにパイプします。 あなたはできる
このオプションのデフォルト値を .perlcriticrc ファイルにソフトウェアを指定する必要があります。
ポケットベルを設定すると、デフォルトで色がオフになります。 色をオンにする必要があります
明示的に。 色が必要な場合は、ポケットベルに次のように指示することもできます。
生の文字を表示します。 「少ない」と「多い」の場合は、-Rスイッチを使用します。
"--color-severity-highest COLOR_SPECIFICATION"
重大度の最も高い違反に使用される色をTerm :: ANSIColorとして指定します
色の仕様。 「--colour-severity-highest」として指定することもできます。
「--color-severity-5」または「--color-severity-5」。
"--color-severity-high COLOR_SPECIFICATION"
重大度の高い違反に使用される色をTerm :: ANSIColorとして指定します
色の仕様。 「--colour-severity-high」として指定することもできます。
「--color-severity-4」または「--color-severity-4」。
"--color-severity-medium COLOR_SPECIFICATION"
中程度の重大度の違反に使用される色をTerm :: ANSIColorとして指定します
色の仕様。 「--colour-severity-medium」として指定することもできます。
「--color-severity-3」または「--color-severity-3」。
"--color-severity-low COLOR_SPECIFICATION"
重大度の低い違反に使用される色を、Term :: ANSIColorの色として指定します
仕様。 「--colour-severity-low」として指定することもできます。
「--color-severity-2」または「--color-severity-2」。
"--color-severity-lowest COLOR_SPECIFICATION"
重大度が最も低い違反に使用される色をTerm :: ANSIColorとして指定します
色の仕様。 「--colour-severity-lowest」として指定することもできます。
「--color-severity-1」または「--color-severity-1」。
"--files-with-violations"
違反のあるファイルの名前のみを表示します。 この機能を
--single-policyは、特定のポリシーの違反を含むファイルを検索します。 することもできます
「--l」として指定されます。
「-違反のないファイル」
違反のないファイルの名前のみを表示します。 この機能を
--single-policyは、特定のポリシーの違反を含まないファイルを検索します。 できる
「--L」としても指定されます。
"--program-extensions file_name_extension"
名前が指定されたファイル名拡張子で終わるファイルを次のように扱うように「perlcritic」に指示します
モジュールとしてではなく、プログラム。 先頭の「。」の場合明示的に指定する必要があります。
例えば
-- プログラム拡張子 .pl
マッチングでは大文字と小文字が区別され、オプションは何回でも指定できます
望ましい、例えば
--プログラム拡張子 .pl --プログラム拡張子 .cgi
上記は、ファイル名拡張子を引用することによっても行うことができます。
--program-extensions'.pl .cgi '
名前が「.PL」で終わるファイルは、常にプログラムと見なされます。
"--doc PATTERN"
「m / PATTERN / ixms」に一致するすべてのPerl :: Critical :: Policyモジュールのperldocを表示します。
ポリシーモジュールはかなり長い名前を持つ傾向があるため、これはより多くの名前を提供します
次のような便利な言い方: "perldoc
Perl :: Critic :: Policy :: ValuesAndExpressions :: RequireUpperCaseH eredocTerminator "
コマンド・プロンプト。
「--allow-unsafe」
このオプションは、「perlcritic」に、次のようにマークされたポリシーの使用を許可するように指示します。
「安全ではない」。 安全でないポリシーは、コンパイルして実行することにより、危険な操作を引き起こす可能性があります
彼らが分析するコード。 コアPerl :: Criticで出荷されるすべてのポリシー
配布は安全です。 ただし、
Perl :: Critic ::動的配布は安全ではありません。 「安全」は名誉であることに注意してください-もし
ポリシーの作成者は、ポリシーを安全であるとマークします。これは、ポリシーが厄介にならないことを保証するものではありません。
物事。 If フォーム しない 信頼 政策 コード フォーム 分析、 その後 do
つかいます この スイッチ.
" - 静かな"
違反が見つからない場合は、「ソースOK」メッセージを抑制します。
" - ヘルプ"
「-?」
"-NS"
オプションと出口の簡単な要約を表示します。
「-オプション」
オプションと終了の説明を表示します。 この出力は長いですが、
「--man」の出力の長さにはほど遠い。
" - 男"
完全な「perlcritic」マニュアルを表示して終了します。
" - バージョン"
「-V」
「perlcritic」のバージョン番号を表示して終了します。
CONFIGURATION
Perl :: Criticalおよび各ポリシーモジュールのほとんどの設定は、次の方法で制御できます。
構成ファイル。 デフォルトの構成ファイルは次のように呼び出されます .perlcriticrc.
「perlcritic」は、最初に現在のディレクトリでこのファイルを検索し、次に自宅で検索します
ディレクトリ。 または、「PERLCRITIC」環境変数を明示的に設定することもできます
別の場所にある別のファイルをポイントします。 これらのファイルが存在しない場合、および
「--profile」オプションがコマンドラインで指定されていない場合、すべてのポリシーがロードされます
それらのデフォルト構成。
構成ファイルの形式は、キーを含む一連のINIスタイルのブロックです。
「=」で区切られた値のペア。 コメントは「#」で始まる必要があり、
必要に応じて、行を区切るか、名前と値のペアの後に。
perlcritic自体のデフォルト設定を設定できます 最初の 命名 ブロック。
たとえば、これらのいずれかまたはすべてを上部に配置します .perlcriticrc ファイルはを設定します
対応するコマンドライン引数のデフォルト値。
重大度= 3#整数または名前付きレベル
only = 1#ZeroまたはOne
force = 0#ZeroまたはOne
verbose = 4#整数またはフォーマット仕様
top = 50#正の整数
テーマ=(pbp +セキュリティ)*バグ#テーマ式
include = NamingConventions ClassHierarchies#スペース区切りのリスト
除外=変数Modules :: RequirePackage#スペース区切りリスト
構成ファイルの残りの部分は、次のような一連のブロックです。
[Perl :: Critic :: Policy :: Category :: PolicyName]
重大度= 1
set_themes = フーバー
add_主題 = バズ
arg1 = 値1
arg2 = 値2
「Perl :: Critic :: Policy :: Category :: PolicyName」は、実装するモジュールのフルネームです。
ポリシー。 Perl :: Criticで配布されるポリシーモジュールはにグループ化されています
ダミアン・コンウェイの本の目次によるカテゴリー パール おすすめ! プラクティス.
簡潔にするために、モジュール名の「Perl :: Critical :: Policy」の部分は省略できます。
「重大度」は、ポリシーに割り当てたい重要度のレベルです。 すべてのポリシー
モジュールは、1(最も重大度が低い)から5(最も重大度が低い)の範囲のデフォルトの重大度値で定義されます。
重度)。 ただし、デフォルトの重大度に同意せず、
独自のコーディング哲学に基づいて、重大度を高くしたり低くしたりします。 「重大度」を設定できます
1から5までの整数に変換するか、同等の名前のXNUMXつを使用します。
SEVERITY NAME ...は... SEVERITYNUMBERと同等です
-------------------------------------------------- -
優しい5
船尾4
過酷な3
残酷な2
残忍な1
「set_themes」は、ポリシーのテーマを設定し、デフォルトのテーマを上書きします。 議論
空白で区切られたXNUMXつ以上の英数字の単語の文字列です。 テーマはケースです-
鈍感。 詳細については、「ポリシーテーマ」を参照してください。
「add_themes」は、このポリシーのデフォルトのテーマに追加されます。 引数は次の文字列です
XNUMXつ以上の空白で区切られた単語。 テーマでは大文字と小文字は区別されません。 「ポリシーテーマ」を参照してください
をご覧ください。
残りのキーと値のペアは、に渡される構成パラメーターです。
そのポリシーのコンストラクタ。 ほとんどのポリシーモジュールのコンストラクターはサポートしていません
引数、およびそうするものには、妥当なデフォルトが必要です。 のドキュメントを参照してください
詳細については、適切なポリシーモジュールを参照してください。
特定のポリシーの重大度を再定義する代わりに、ポリシーを完全に無効にすることができます
構成ファイルのモジュール名の前に「-」を付けます。 このように、
コマンドラインで指定された「--severity」に関係なく、ポリシーがロードされることはありません。
単純な構成は次のようになります。
#------------------------------------------------- -------------
#これらは本当に重要だと思うので、常にロードしてください
[TestingAndDebugging :: RequireUseStrict]
重大度= 5
[TestingAndDebugging :: RequireUseWarnings]
重大度= 5
#------------------------------------------------- -------------
#これらはそれほど重要ではないと思うので、尋ねられたときにのみロードします
[Variables :: ProhibitPackageVars]
重大度= 2
[ControlStructures :: ProhibitPostfixControls]
allow = if until#私のカスタム構成
重大度=残酷#「重大度= 2」と同じ
#------------------------------------------------- -------------
#これらのポリシーにカスタムテーマを指定します。 アクティベートできます
#「perlcritic--theme'larry || curly '」と言って、これらのポリシー
[Modules :: RequireFilenameMatchesPackage]
add_themes = ラリー
[TestingAndDebugging :: RequireTestLabels]
add_themes =カーリー萌え
#------------------------------------------------- -------------
#私はこれらにまったく同意しないので、決してロードしないでください
[-NamingConventions :: Capitalization]
[-ValuesAndExpressions :: ProhibitMagicNumbers]
#------------------------------------------------- -------------
#他のすべてのポリシーについては、デフォルトの重大度を受け入れます。
#したがって、追加の構成は必要ありません。
整数を持つPerl :: Criticディストリビューションに含まれるすべてのポリシーに注意してください
パラメータは、Perl数値リテラルと同様に、値にアンダースコア( "_")を受け入れます。 ために
例、
[ValuesAndExpressions :: RequireNumberSeparators]
最小値 = 1_000
その他の構成例については、以下を参照してください。 perlcriticrc これに含まれるファイル
例 このディストリビューションのディレクトリ。
DamianConway独自のPerl :: Critic構成もこのディストリビューションに含まれています。
例/ perlcriticrc-conway.
、 方針
多数のポリシーモジュールがPerl :: Criticで配布されています。 それらは説明されています
コンパニオンドキュメントPerl :: Critical :: PolicySummaryで簡単に説明し、詳細については
個々のモジュール自体。 「perlcritic--docPATTERN」と言うと、すべてのperldocが表示されます
正規表現「m / PATTERN / ixms」に一致するポリシーモジュール
CPANには、追加のポリシーが多数配布されています。 Perl :: Criticの場合
必要なポリシーが含まれていないため、誰かがすでにポリシーを作成している可能性があります。 ほらみて
これらのディストリビューションのいくつかのリストについては、Perl :: Criticの「ALSO」も参照してください。
ポリシー THEMES
各ポリシーは、XNUMXつ以上の「テーマ」で定義されます。 テーマを使用して任意の作成を行うことができます
ポリシーのグループ。 それらは、選択するための代替メカニズムを提供することを目的としています。
好みのポリシーセット。 たとえば、特定のセットを無効にしたい場合があります
テストプログラムを分析する際のポリシー。 逆に、特定の機能のみを有効にすることもできます
モジュールを分析するときのポリシーのサブセット。
Perl :: Criticalに同梱されているポリシーは、次のテーマに分けられています。
これは、いくつかの基本的な論理グループを提供するための単なる試みです。 あなたは自由に発明することができます
あなたのニーズに合った新しいテーマ。
テーマの説明
-------------------------------------------------- ----------------------
コアPerl :: Criticに付属するすべてのポリシー
「PerlBestPractices」から直接得られるpbpポリシー
バグバグを防止または明らかにするポリシー
CERTが推奨するcertrecポリシー
CERTがルールを考慮するcertruleポリシー
コードの長期的な健全性に影響を与えるメンテナンスポリシー
表面的な効果しか持たない美容ポリシー
複雑さコードの複雑さに特に関連するポリシー
セキュリティ問題に関連するセキュリティポリシー
テストプログラムに固有のポリシー
「perlcritic--list」と言うと、利用可能なすべてのポリシーとテーマのリストが表示されます。
それぞれに関連付けられています。 ポリシーのテーマを変更することもできます
.perlcriticrc ファイル。 詳細については、「構成」セクションを参照してください。
「--theme」コマンドラインオプションを使用すると、任意の複雑なルールを作成できます。
適用するポリシーを決定します。 優先順位は通常のPerlコードと同じであり、
括弧を使用して優先順位を強制することもできます。 サポートされている演算子は次のとおりです。
オペレーターの代替例
-------------------------------------------------- ---------------
&&および 'pbp &&コア'
|| または 'pbp || (バグ&&セキュリティ) '
! 'pbp &&ではありません! (携帯性||複雑さ) '
テーマ名では大文字と小文字は区別されません。 「--theme」が空の文字列に設定されている場合は、
すべてのポリシーがtrueと評価されます。
曲げ 、 RULES
Perl :: Criticは、コードに対して強硬なアプローチを取ります。準拠するかしないかのどちらかです。 の
現実の世界では、コーディングに完全に準拠することが常に実用的(または可能)であるとは限りません。
標準。 そのような場合、あなたが故意に違反していることを示すのが賢明です
基準とあなたがそうするためのくそー良い理由(DGR)を持っていること。
これらの状況を支援するために、Perl :: Criticに特定の行を無視するように指示するか
注釈を使用したコードのブロック:
'LegacyLibaray1.pl'が必要です。 ##評論家なし
'LegacyLibrary2.pl'が必要です。 ##評論家なし
私の$ element(@list){
##評論家なし
$ foo = ""; #Violates'ProhibitEmptyQuotes '
$ barf = bar()if $ foo; #Violates'ProhibitPostfixControls '
#もう少し邪悪なコード...
##評論家を使う
#いくつかの良いコード...
do_something($ _);
}
「## no critic」アノテーションは、Perl :: Criticにコードの残りの行を無視するように指示します
「## usecritic」アノテーションが見つかるまで。 「##批評家なし」の注釈が
コードステートメントと同じ行の場合、そのコード行のみが見落とされます。 指示する
「## no critic」アノテーションを無視する場合は、「-force」オプションを使用してください。
裸の「## no critic」アノテーションは、すべてのアクティブなポリシーを無効にします。 無効にしたい場合
特定のポリシーのみ、ポリシー名のリストを引数として追加します。
「厳密ではない」または「警告なし」のプラグマ。 たとえば、これは無効になります
ブロックの終わりまでの「ProhibitEmptyQuotes」および「ProhibitPostfixControls」ポリシーまたは
次の「## usecritic」アノテーション(どちらか早い方)まで:
##評論家なし(EmptyQuotes、PostfixControls);
#ValuesAndExpressions :: ProhibitEmptyQuotesから免除されるようになりました
$ foo = "";
#ControlStructures :: ProhibitPostfixControlsを免除する
$ barf = bar()if $ foo;
#引き続きValuesAndExpression :: RequireNumberSeparatorsの対象
$ long_int = 10000000000;
ポリシー名は通常どおり「##批評家なし」の引数と照合されるため
式では、ポリシー名を省略したり、ポリシーのファミリー全体を無効にしたりできます
このように一発で:
##評論家なし(NamingConventions)
#NamingConventions :: Capitalizationから免除されるようになりました
私の$ camelHumpVar = 'foo';
#NamingConventions :: Capitalizationから免除されるようになりました
サブ camelHumpSub {}
引数リストは括弧で囲む必要があり、XNUMXつ以上のコンマを含める必要があります-
分離されたベアワード(つまり、引用符は使用しないでください)。 「##評論家なし」の注釈は
ネストされ、内部アノテーションによって指定されたポリシーは、それらとともに無効になります
すでに外部注釈を無効にしています。
「Subroutines :: ProhibitExcessComplexity」などの一部のポリシーは、
コード。 そのような場合、違反が発生した行に「##批評家なし」を表示する必要があります
報告。 例えば:
サブcomplexed_function {##評論家なし(ProhibitExcessComplexity)
#ここにあなたのコード...
}
「Documentation :: RequirePodSections」などの一部のポリシーは、ドキュメント全体に適用されます。
この場合、違反は1行目で報告されます。ただし、ファイルにシバン行が必要な場合は、
ファイルの最初の行に「## nocritic」を付けることはできません。 これは既知です
制限があり、将来のリリースで対処される予定です。 回避策として、無効にすることができます
コマンドラインまたは .perlcriticrc ファイル。 ただし、注意してください
これはの分析に影響します を ファイル。
この機能を賢く使用してください。 「##批評家なし」は、可能な限り最小の範囲で使用する必要があります。
コードの個々の行でのみ。 そして、あなたは常に可能な限り具体的にする必要があります
どのポリシーを無効にしますか(つまり、「##批評家なし」を使用しないでください)。 もしも
Perl :: Criticはあなたのコードについて不平を言っています、頼る前に準拠した解決策を見つけてみてください
この機能に。
環境変数EDITOR 統合
使いやすさのために、「perlcritic」はお気に入りのテキストエディタと統合することができます。 The
「perlcritic」の出力フォーマット機能は、特に
「emacs」や「vim」などのエディターで使用できる「grep」または「compile」モード。 これらのモードでは、
任意のコマンドを実行でき、エディターは出力をインタラクティブに解析します
クリックして関連するコード行にジャンプできるバッファ。
Perl :: Criticチームは、Perl-Criticとの統合を支援してくれたすべての人に感謝します
お気に入りのエディター。 特にあなたの貢献により、Perl-Criticは便利で
すべてのストライプのPerl開発者のためのユーザーフレンドリーなツール。 どうぞよろしくお願いいたします。
作業。
EMACS
Joshua ben Joreは、perlcriticを実行できるemacsのマイナーモードを作成しました。
現在の領域またはバッファ。 オンデマンドで実行することも、実行するように構成することもできます
バッファを保存すると自動的に。 出力はホットリンクされたコンパイラに表示されます
バッファ。 コードとインストール手順は、 エクストラ ディレクトリにジョブを開始します。
このディストリビューション内。
VIM
スコットペシャクが公開しました perlchecker.vim、で利用可能です
<http://www.vim.org/scripts/script.php?script_id = 1731>。
gVIM
フリッツ・メーナーは最近、彼の素晴らしいgVIMプラグインに「perlcritic」のサポートを追加しました。 の
非常にPerlishIDEを提供することに加えて、Fritzのプラグインはワンクリックでアクセスできます
「perlcritic」および他の多くの非常に便利なユーティリティ。 そして、すべてがシームレスに統合されています
編集者。 詳細については、http:の「/lug.fh-swf.de/vim/vim-perl/screenshots-en.html」を参照してください。
詳細。
EPIC
EPICは、Eclipseプラットフォームに基づくオープンソースのPerlIDEです。 機能には構文が含まれます
ハイライト、オンザフライ構文チェック、コンテンツアシスト、コード補完、perldocサポート、
Perl :: Tidy、コードテンプレート、正規表現編集ツール、および
Perlデバッガーとの統合。 EPICの最近のバージョンにも組み込みのサポートがあります
Perl :: Criticの場合。 少なくともXNUMX人のPerl :: Critic寄稿者がEPICによって誓います。 に移動
<http://e-p-i-c.sourceforge.net> EPICの詳細については。
BB編集
Josh Clarkは、BBEdit用の優れたPerl-Criticプラグインを作成しました。 見る
<http://globalmoxie.com/projects/bbedit-perl-critic/index.shtml>ダウンロード用、
インストール、および使用方法の説明。 Appleユーザーは喜ぶ!
コモド
Komodoは、Perlおよびその他のいくつかの動的言語専用のIDEです。 で始まる
バージョン5.1.1、Perl :: Criticを使用している場合、KomodoにはPerl-Criticのサポートが組み込まれています。
批評モジュールがインストールされています。 コモドの無料試用版は、
ActiveStateのWebサイトhttp://www.activestate.com>.
ActivePerl
ActivePerlには、Perlを構成および実行するための非常に洗練されたグラフィカルインターフェイスが含まれています-
「perlcritic-gui」と呼ばれる評論家。 ActivePerlの無料のコミュニティエディションを入手できます
ActiveStateのWebサイトからhttp://www.activestate.com>.
EXIT ステータス
「perlcritic」自体にエラーがある場合は、status == 1で終了します。エラーがない場合は、
ただし、「perlcritic」はソースコードでポリシー違反を検出し、ステータス== 2で終了します。
エラーはなく、違反も見つかりませんでした。ステータス== 0で終了します。
、 Perl :: Critic フィロソフィ
コーディング基準は非常に個人的で主観的です。 Perl :: Criticの目標
一連のベストプラクティスに準拠したコードの記述を支援することです。 私たちのプライマリ
目標は、それらのプラクティスが何であるかを指示することではなく、むしろ、
他の人によって発見された慣行。 最終的に、あなたはルールを作ります-Perl :: Criticは
一貫性を促進するための単なるツールです。 あなたが思うポリシーがある場合
重要な、または私たちが見落としていること、私たちは貢献に非常に感謝するでしょう、または
独自のポリシーのプライベートセットをPerl :: Criticにロードするだけです。
拡張 、 批評家
Perl :: Criticのモジュラー設計は、新しいポリシーの追加を容易にすることを目的としています。
PPIについてある程度理解している必要がありますが、ほとんどのポリシーモジュールはかなり適切です。
簡単で、必要なコードは約20行だけです。 をご覧ください
このディストリビューションに含まれているPerl :: Critic :: DEVELOPERファイルを段階的に説明します
新しいポリシーモジュールを作成する方法のデモンストレーション。
新しいポリシーモジュールを開発する場合は、「[メール保護]>"
そして、それらをPerl :: Criticディストリビューションに入れることを検討したいと思います。 またはあなたが
Perl :: Criticalプロジェクトで直接作業したい場合は、次の場所でリポジトリをフォークできます。
http:の「/github.com/Perl-Critic/Perl-Critic.git」。
Perl :: Criticチームも雇うことができます。 組織に独自のコーディングがある場合
標準では、ローカルガイドラインを実施するためのカスタムポリシーを作成できます。 またはあなたの場合
コードベースは特定の欠陥パターンになりやすいので、役立つポリシーを設計できます
あなたはそれらの高価な欠陥を捕まえます 彼らは生産に入ります。 あなたのニーズについて話し合う
Perl :: Criticalチーム、「[メール保護]> "。
お問い合わせ 、 開発 チーム
メーリングリストに登録することをお勧めします。 にメッセージを送信します
<mailto:[メール保護]>。 スパムを防ぐために、あなたはする必要があるかもしれません
にメッセージを投稿する前に、Tigris.orgにユーザーアカウントを登録してください。
メーリングリスト。 のメーリングリストアーカイブも参照してください。
<http://perlcritic.tigris.org/servlets/SummarizeList?listName = users>。 少なくともXNUMX人のメンバー
開発チームのと
TwitterでPerl :: Criticをフォローできます。 。
onworks.netサービスを使用してperlcriticpをオンラインで使用する
