
Perl ::批評家 - ベストプラクティスの批評Perlソースコード。
use Perl::Critic;
my $file = shift;
my $critic = Perl::Critic->new();
my @violations = $critic->critique($file);
print @violations;
Perl ::批評家は、Perlソースコードにコーディング標準を作成および適用するための拡張可能なフレームワークです。基本的に、それは静的なソースコード分析エンジンです。 Perl ::批評家は、さまざまなコーディングガイドラインを実施しようとする多くのPerl ::批評家::ポリシーモジュールで配布されています。ほとんどのポリシーモジュールは、Damian Conwayの本Perl Best Practicesに基づいています。しかし、Perl ::批評家はPBPに限定されず、コンウェイと矛盾する政策さえ支持します。 Perl :: Critic Interfaceを使用して、これらのポリスを有効にし、無効にし、カスタマイズできます。また、自分の好みに合った新しいポリシーモジュールを作成することもできます。
Perl ::批評家へのコマンドラインインターフェイスについては、Perlcriticのドキュメントを参照してください。 Perl ::批評家をビルドプロセスと統合したい場合、Test :: Perl ::批評家は、テストプログラムに適したインターフェイスを提供します。また、test :: perl :: Critic :: Progressiveは、レガシーコードにコーディング標準を徐々に適用するのに役立ちます。 (ある程度の柔軟性を犠牲にして)究極の利便性のために、批判のプラグマをご覧ください。
何もインストールせずにPerl ::批評家を試してみたい場合は、http://perlcritic.comでWebサービスを利用できます。 Web-Serviceは、ネイティブPerl :: Critic APIで利用可能なすべての構成機能をまだサポートしていませんが、それが何をするかについての良いアイデアを提供するはずです。
また、ActivePerlにはperlcritic-guiと呼ばれるPerl-Criticへの非常に滑らかなグラフィカルインターフェイスが含まれています。 http://www.activestate.comからActivePerlの無料コミュニティエディションを入手できます。
Perl ::批評家はPerlでPerl 5.10.1に戻ります。 PPIモジュールに依存して、Perlを解析するという重い作業を行います。
Perl::Criticモジュールは、公開クラスと見なされます。そのインターフェースの変更は、非推奨サイクルを経ます。
new( [ -profile => $FILE, -severity => $N, -theme => $string, -include => @PATTERNS, -exclude => @PATTERNS, -top => $N, -only => $B, -profile-strictness => $PROFILE_STRICTNESS_{WARN|FATAL|QUIET}, -force => $B, -verbose => $N ], -color => $B, -pager => $string, -allow-unsafe => $B, -criticism-fatal => $B)
new()
新しいPerl ::批評家のオブジェクトへの参照を返します。ほとんどの議論は、Perl :: Critic :: configに直接渡されますが、ここでも説明しました。すべての引数のデフォルト値は、 .perlcriticrcファイルで定義できます。詳細については、「構成」セクションを参照してください。すべての引数は、次のようにオプションのキー価値ペアです。
-Profileは構成ファイルへのパスです。 $FILEが定義されていない場合、perl :: critic :: configは、現在のディレクトリで.perlcriticrc構成ファイルを見つけようとします。または、 PERLCRITIC環境変数を設定して、別の場所のファイルを指すこともできます。構成ファイルが見つからない場合、または$FILE空の文字列である場合、すべてのポリシーはデフォルトの構成でロードされます。詳細については、「構成」を参照してください。
- 重大度は最小重大度レベルです。 $N超える重大度を持つポリシーモジュールのみが適用されます。重大度の値は、1(最も深刻な違反)から5(最も深刻な違反)の範囲です。デフォルトは5です。指定された-profileの場合、 -severityを減らすと、通常、より多くの政策違反が明らかになります。このオプションのデフォルト値を.perlcriticrcファイルに設定できます。ユーザーは、 .perlcriticrcファイルのポリシーの重大度レベルを再定義できます。詳細については、「構成」を参照してください。
重大度「5」が最小レベルか最も制限的なレベルであるかを覚えておくのが難しい場合は、これらの指定された値のいずれかを使用できます。
SEVERITY NAME ...is equivalent to... SEVERITY NUMBER
--------------------------------------------------------
-severity => 'gentle' -severity => 5
-severity => 'stern' -severity => 4
-severity => 'harsh' -severity => 3
-severity => 'cruel' -severity => 2
-severity => 'brutal' -severity => 1
名前は、コードがどれほど厳しく批判されているかを反映しています。 gentle批判は、最も深刻な違反のみを報告するなど、最も小さな違反さえ報告するbrutal批判に至るまでです。
- テーマは、それぞれのテーマに基づいて適用するポリシーを決定する特別な表現です。たとえば、以下は「バグ」と「PBP」テーマを持つポリシーのみをロードします。
my $critic = Perl::Critic->new( -theme => 'bugs && pbp' );
-severityオプションが明示的に与えられない限り、設定-themeは静かに-severityを1に設定します。このオプションのデフォルト値を.perlcriticrcファイルに設定できます。テーマの詳細については、「ポリシーテーマ」セクションを参照してください。
-includeは、文字列@PATTERNSのリストへの参照です。他のすべての設定に関係なく、少なくとも1つのm/$PATTERN/ixmsに一致するポリシーモジュールは常にロードされます。例:
my $critic = Perl::Critic->new(-include => ['layout'], -severity => 4);
これにより、Perl ::批評家はすべて.perlcriticrc CodeLayout::*ポリシーモジュールを適用します。 -excludeオプションと組み合わせて-includeを使用することもできます。 -excludeは、ポリシーが両方のパターンと一致する場合に優先-includeれることに注意してください。
-excludeは、文字列@PATTERNSのリストへの参照です。他のすべての設定に関係なく、少なくとも1つのm/$PATTERN/ixmsに一致するポリシーモジュールはロードされません。例:
my $critic = Perl::Critic->new(-exclude => ['strict'], -severity => 1);
これにより、Perl ::批評家は、1より大きい重大度レベルを持っているにもかかわらず、 RequireUseStrictおよびProhibitNoStrictポリシーモジュールを適用しません.perlcriticrcファイルにこのオプションのデフォルト値を設定できます。 -includeオプションと組み合わせて-exclude使用することもできます。 -excludeは、ポリシーが両方のパターンと一致する場合に優先-includeれることに注意してください。
-Single-Policyは文字列PATTERNです。 m/$PATTERN/ixmsに一致する1つのポリシーのみが使用されます。一致しないポリシーは除外されます。このオプションには、 -severity 、 -theme 、 -include 、 -exclude 、および-onlyオプションよりも優先されます。このオプションのデフォルト値を.perlcriticrcファイルに設定できます。
-TOPは、重大度レベルでランク付けされた場合に戻る違反の最大数です。これはポジティブな整数でなければなりません。違反は、ファイル内で発生する順序でまだ返されます。 -severityオプションが明示的に与えられない限り、 -topの設定により、 -severityが1に設定されます。このオプションのデフォルト値を.perlcriticrcファイルに設定できます。
-ブール値です。真の値に設定されている場合、Perl ::批評家は、ユーザーのプロフィールに記載されているポリシーからのみ選択します。虚偽の値(デフォルト)に設定されている場合、Perl ::批評家は、サイトで見つけたすべてのポリシーから選択します。このオプションのデフォルト値を.perlcriticrcファイルに設定できます。
-profile-strictnessは列挙された値であり、perl :: critic :: utils :: constants(default)の「$ profile_strictness_warn」の1つであり、 "$ profile_strictness_fatal" in perl :: critic :: utils :: constants、 "$ profile_strictness_quiet" perl :: vers :: utils :: constantsで「$ profile_strictness_fatal」に設定されている場合、perl ::批評家は、 -profile option fatalを介して指定された.perlcriticrcまたはファイルで見つかった問題について特定の警告を発します。たとえば、Perl ::批評家は通常、存在しないポリシーに言及するプロファイルについてのみwarnが、この価値はこの状況を致命的にします。それに対応して、Perl :: Critic :: utils :: Constantsの「$ profile_strictness_quiet」:: constantsは、これらのことについて黙らせます。
-Forceは、Perl ::批評家が魔法の"## no critic"をコードに観察するかどうかを制御するブール値です。真の値に設定すると、Perl ::批評家はすべてのコードを分析します。 false値(デフォルトである)に設定されている場合、perl ::批評家は、これらの注釈でタグ付けされたコードを無視します。詳細については、「ルールの曲げ」を参照してください。このオプションのデフォルト値を.perlcriticrcファイルに設定できます。
-verboseは、正の整数(1から11)、またはリテラル形式の仕様にすることができます。フォーマット仕様の説明については、Perl :: Critic ::違反を参照してください。このオプションのデフォルト値を.perlcriticrcファイルに設定できます。
-Unsafeは、Perl ::批評家に、著者によって「安全でない」とマークされているポリシーの使用を許可するよう指示します。このようなポリシーは、信頼されていないコードをコンパイルしたり、他の不気味なことをしたりする場合があります。
-colorとpagerはperl ::批評家によって使用されませんが、perlcriticの利益のために提供されます。
-critismisis-FatalはPerl ::批評家によって使用されていませんが、批評の利益のために提供されます。
-color-severity Highest 、 -color-severity-high 、 -color-severity- medium 、 -color-severity-low 、および-color-sverity-lowestはPerl ::批評家によって使用されませんが、Perlcriticの利益のために提供されます。それぞれが用語:: ansicolor色の仕様に設定され、対応する重大度の違反を表示するために使用されます。
-files-with-violations and -files-without-violationsはperl :: viriticによって使用されるのではなく、Perlcriticの利益のために提供され、関連するファイル名のみが表示されます。
critique( $source_code )
このエンジンにロードされたすべてのポリシーを使用して、Perl ::批評家エンジンを介して$source_codeを実行します。 $source_codeスカラーリファレンスである場合、実際のPerlコードの文字列として扱われます。 $source_code ppi :: documentのインスタンスへの参照である場合、そのインスタンスは直接使用されます。それ以外の場合は、PERLコードを含むローカルファイルへのパスとして扱われます。このメソッドは、ロードされたポリシーの違反ごとにPerl :: Criver ::違反オブジェクトのリストを返します。リストは、違反がコードに表示される順序でソートされます。違反がない場合、この方法は空のリストを返します。
add_policy( -policy => $policy_name, -params => %param_hash )
ポリシーオブジェクトを作成し、この批評家にロードします。オブジェクトをインスタンス化できない場合、致命的な例外が投げられます。それ以外の場合、この批評家への言及を返します。
-Policyは、Perl :: Critic :: Policy Subclassモジュールの名前です。 'Perl::Critic::Policy'という名前の部分は、簡潔に省略できます。この議論が必要です。
-Paramsは、ポリシーパラメーターのハッシュへのオプションの参照です。このハッシュ参照の内容は、ポリシーモジュールのコンストラクターに渡されます。それがサポートする引数の説明については、関連するポリシーモジュールのドキュメントを参照してください。
policies()
このエンジンにロードされたすべてのポリシーオブジェクトへの参照を含むリストを返します。オブジェクトは、ロードされた順になります。
config()
この批評家のために作成された、または与えられた批評家::批評家:: configオブジェクトを返します。
statistics()
この批評家のために作成された批評家::統計オブジェクトを返します。統計オブジェクトは、この批評家によって分析されたすべてのファイルのデータを蓄積します。
機能的なインターフェイスを好む人々のために、 critique法をリクエストに応じてエクスポートし、静的関数として呼び出すことができます。最初の引数がハッシュレフの場合、その内容は新しいPerl ::批評家のオブジェクトを内部的に構築するために使用されます。そのハッシュのキーはPerl::Critic::new()メソッドでサポートされているキーと同じでなければなりません。ここにいくつかの例があります:
use Perl::Critic qw(critique);
# Use default parameters...
@violations = critique( $some_file );
# Use custom parameters...
@violations = critique( {-severity => 2}, $some_file );
# As a one-liner
%> perl -MPerl::Critic=critique -e 'print critique(shift)' some_file.pm
現在、他のオブジェクトメソッドは静的関数としてサポートされていません。ごめん。
Perl ::批評家のほとんどの設定と各ポリシーモジュールは、構成ファイルによって制御できます。デフォルトの構成ファイルは.perlcriticrcと呼ばれます。 Perl ::批評家は、最初に現在のディレクトリでこのファイルを探し、次にホームディレクトリで探します。または、 PERLCRITIC Environment変数を設定して、別の場所の別のファイルを明示的に指すことができます。これらのファイルのいずれも存在せず、 -profileオプションがコンストラクターに提供されていない場合、perl :: critic :: Policy Namespaceにあるすべてのモジュールにデフォルトの構成がロードされます。
構成ファイルの形式は、「=」で区切られたキー価値ペアを含む一連のINIスタイルのブロックです。コメントは「#」から始まり、必要に応じて別の行または名前と価値のペアの後に配置できます。
Perl ::批評家自体のデフォルト設定は、最初の名前のブロックの前に設定できます。たとえば、これらのいずれかまたはすべてを構成ファイルの上部に配置すると、対応するコンストラクター引数のデフォルト値が設定されます。
severity = 3 #Integer or named level
only = 1 #Zero or One
force = 0 #Zero or One
verbose = 4 #Integer or format spec
top = 50 #A positive integer
theme = (pbp || security) && bugs #A theme expression
include = NamingConventions ClassHierarchies #Space-delimited list
exclude = Variables Modules::RequirePackage #Space-delimited list
criticism-fatal = 1 #Zero or One
color = 1 #Zero or One
allow-unsafe = 1 #Zero or One
pager = less #pager to pipe output to
構成ファイルの残りの部分は、次のような一連のブロックです。
[Perl::Critic::Policy::Category::PolicyName]
severity = 1
set_themes = foo bar
add_themes = baz
maximum_violations_per_document = 57
arg1 = value1
arg2 = value2
Perl::Critic::Policy::Category::PolicyNameポリシーを実装するモジュールのフルネームです。 Perl ::批評家に配布されたポリシーモジュールは、Damian Conwayの本Perl Best Practicesの目次に従ってカテゴリにグループ化されています。簡潔にするために、モジュール名の'Perl::Critic::Policy'の一部を省略できます。
severity 、ポリシーに割り当てたい重要性のレベルです。すべてのポリシーモジュールは、1(最も深刻な)から5(最も重度)の範囲のデフォルトの重大度値で定義されます。ただし、デフォルトの重大度に反対し、独自のコーディング哲学に基づいて、より高い重大度または低い重大度を与えることを選択する場合があります。 severity 1〜5の整数に設定するか、同等の名前のいずれかを使用できます。
SEVERITY NAME ...is equivalent to... SEVERITY NUMBER
----------------------------------------------------
gentle 5
stern 4
harsh 3
cruel 2
brutal 1
名前は、コードがどれほど厳しく批判されているかを反映しています。 gentle批判は、最も深刻な違反のみを報告するなど、最も小さな違反さえ報告するbrutal批判に至るまでです。
set_themesポリシーのテーマを設定し、デフォルトのテーマをオーバーライドします。この議論は、1つ以上の白文字が区別される英数字の単語の文字列です。テーマはケースに依存しません。詳細については、「ポリシーテーマ」を参照してください。
add_themes 、このポリシーのデフォルトのテーマに追加されます。この議論は、1つ以上の白文字が区別される単語の文字列です。テーマはケースではありません。詳細については、「ポリシーテーマ」を参照してください。
maximum_violations_per_document 、特定のドキュメントに対してポリシーが返される違反の数を制限します。一部のポリシーにはデフォルトの制限があります。個々のポリシーがあるかどうかを確認するためのドキュメントを参照してください。ポリシーに制限がないように強制するには、このパラメーターの値に「no_limit」または空の文字列を指定します。
残りのキー価値ペアは、そのポリシーのコンストラクターに渡される構成パラメーターです。ほとんどのポリシーオブジェクトのコンストラクターは議論をサポートしておらず、そうするものは合理的なデフォルトを持つ必要があります。詳細については、適切なポリシーモジュールのドキュメントを参照してください。
特定のポリシーの重大度を再定義する代わりに、構成ファイルのモジュールの名前に「 - 」を準備することにより、ポリシーを完全に無効にすることができます。このようにして、Perl :: Cripic Constructorに与えられた-severityに関係なく、ポリシーは決してロードされません。
単純な構成は次のようになるかもしれません:
#--------------------------------------------------------------
# I think these are really important, so always load them
[TestingAndDebugging::RequireUseStrict]
severity = 5
[TestingAndDebugging::RequireUseWarnings]
severity = 5
#--------------------------------------------------------------
# I think these are less important, so only load when asked
[Variables::ProhibitPackageVars]
severity = 2
[ControlStructures::ProhibitPostfixControls]
allow = if unless # My custom configuration
severity = cruel # Same as "severity = 2"
#--------------------------------------------------------------
# Give these policies a custom theme. I can activate just
# these policies by saying `perlcritic -theme larry`
[Modules::RequireFilenameMatchesPackage]
add_themes = larry
[TestingAndDebugging::RequireTestLabels]
add_themes = larry curly moe
#--------------------------------------------------------------
# I do not agree with these at all, so never load them
[-NamingConventions::Capitalization]
[-ValuesAndExpressions::ProhibitMagicNumbers]
#--------------------------------------------------------------
# For all other Policies, I accept the default severity,
# so no additional configuration is required for them.
追加の構成例については、この分布のこのexamplesに含まれるperlcriticrcファイルを参照してください。
Damian Conway自身のPerl ::批評家の構成も、この分布にexamples/perlcriticrc-conwayとして含まれています。
多数のポリシーモジュールがPerl ::批評家に配布されています。それらは、コンパニオンドキュメントPerl ::批評家:: PolicySummaryで簡単に説明し、個々のモジュール自体でより詳細に説明されています。 Regex m/PATTERN/ixmsに一致するすべてのポリシーモジュールのPERLDOCを表示する"perlcritic -doc PATTERN"と言う
CPANには追加のポリシーの多数の分配があります。 Perl ::批評家があなたが望むポリシーを含めていない場合、誰かがすでにそれを書いているかもしれません。これらの分布の一部のリストについては、以下の「以下の」セクションも参照してください。
各ポリシーは、1つ以上の「テーマ」で定義されます。テーマを使用して、任意のポリシーグループを作成できます。それらは、お好みのポリシーセットを選択するための代替メカニズムを提供することを目的としています。たとえば、テストプログラムを分析する際に、ポリシーの特定のサブセットを無効にすることをお勧めします。逆に、モジュールを分析するときに、ポリシーの特定のサブセットのみを有効にすることをお勧めします。
Perl ::批評家と一緒に出荷する政策は、次のテーマに分かれています。これは、いくつかの基本的な論理グループを提供する試みにすぎません。あなたはあなたのニーズに合った新しいテーマを自由に発明することができます。
THEME DESCRIPTION
--------------------------------------------------------------------------
core All policies that ship with Perl::Critic
pbp Policies that come directly from "Perl Best Practices"
bugs Policies that that prevent or reveal bugs
certrec Policies that CERT recommends
certrule Policies that CERT considers rules
maintenance Policies that affect the long-term health of the code
cosmetic Policies that only have a superficial effect
complexity Policies that specifically relate to code complexity
security Policies that relate to security issues
tests Policies that are specific to test programs
すべてのポリシーは複数のテーマに適合する場合があります。 "perlcritic -list"と言って、利用可能なすべてのポリシーとそれぞれに関連付けられているテーマのリストを取得します。また、 .perlcriticrcファイルのポリシーのテーマを変更することもできます。詳細については、「構成」セクションを参照してください。
-themeオプションを使用すると、どのポリシーがロードされるかを決定する任意に複雑なルールを作成できます。優先順位は通常のPERLコードと同じであり、括弧を使用して優先順位を実施することもできます。サポートされているオペレーターは次のとおりです。
Operator Alternative Example
-----------------------------------------------------------------
&& and 'pbp && core'
|| or 'pbp || (bugs && security)'
! not 'pbp && ! (portability || complexity)'
テーマ名はケースに依存しません。 -theme空の文字列に設定されている場合、それはすべてのポリシーの真のように評価されます。
Perl ::批評家はあなたのコードに対してハードラインアプローチを取ります:あなたが遵守するか、そうしないかのどちらか。現実の世界では、コーディング標準に完全に準拠することは、必ずしも実用的ではありません(さえ)。そのような場合、あなたが故意に基準に違反していること、そしてあなたがそうするための正当な理由(DGR)があることを示すことは賢明です。
これらの状況を支援するために、Perl ::批評家に、注釈を使用して特定の行またはコードブロックを無視するように指示できます。
require 'LegacyLibaray1.pl'; ## no critic
require 'LegacyLibrary2.pl'; ## no critic
for my $element (@list) {
## no critic
$foo = ""; #Violates 'ProhibitEmptyQuotes'
$barf = bar() if $foo; #Violates 'ProhibitPostfixControls'
#Some more evil code...
## use critic
#Some good code...
do_something($_);
}
"## no critic"アノテーションは、 "## use critic"注釈が見つかるまで、残りのコード行を無視するように批評家を指示します。 "## no critic"アノテーションがコードステートメントと同じ行にある場合、そのコードの行のみが見落とされています。 Perlcriticに"## no critic"アノテーションを無視するように指示するには、 --forceオプションを使用します。
裸の"## no critic"注釈は、すべてのアクティブなポリシーを無効にします。特定のポリシーのみを無効にする場合は、 "no strict"または"no warnings"プラグマと同じように、ポリシー名のリストを引数として追加します。たとえば、これにより、 ProhibitEmptyQuotesが無効になり、ブロックの終了時または次の"## use critic"アノテーション(最初に来た方)までポリシーProhibitPostfixControlsします。
## no critic (EmptyQuotes, PostfixControls)
# Now exempt from ValuesAndExpressions::ProhibitEmptyQuotes
$foo = "";
# Now exempt ControlStructures::ProhibitPostfixControls
$barf = bar() if $foo;
# Still subjected to ValuesAndExpression::RequireNumberSeparators
$long_int = 10000000000;
ポリシー名は"## no critic"議論と正規表現として一致するため、ポリシー名を省略したり、このような1つのショットでポリシーの家族全員を無効にすることができます。
## no critic (NamingConventions)
# Now exempt from NamingConventions::Capitalization
my $camelHumpVar = 'foo';
# Now exempt from NamingConventions::Capitalization
sub camelHumpSub {}
引数リストは、括弧または括弧で囲まれている必要があり、1つ以上のコンマ区切りのBarewordsを含める必要があります(たとえば、引用符を使用しないでください)。 "## no critic"注釈はネストでき、内部注釈によって名付けられたポリシーは、すでに無効になっている人々とともに無効になります。
Subroutines::ProhibitExcessComplexityコードのブロック全体に適用されます。そのような場合、違反が報告されている行に"## no critic"注釈が表示されなければなりません。例:
sub complicated_function { ## no critic (ProhibitExcessComplexity)
# Your code here...
}
Documentation::RequirePodSections全体に適用されます。この場合、1行目で違反が報告されます。
この機能を賢く使用してください。 "## no critic"注釈は、可能な限り少ない範囲で、または個々のコード行でのみ使用する必要があります。そして、あなたは常に無効にしたいポリシーについて可能な限り具体的でなければなりません(つまり、裸の"## no critic"を使用しないでください)。 Perl ::批評家があなたのコードについて不平を言う場合、この機能に頼る前に、準拠したソリューションを見つけてみてください。
コーディング標準は非常に個人的で非常に主観的です。 Perl ::批評家の目標は、一連のベストプラクティスに準拠したコードを作成するのを支援することです。私たちの主な目標は、それらの慣行が何であるかを指示することではなく、他の人が発見したプラクティスを実装することです。最終的に、あなたはルールを作成します-Perl ::批評家は、一貫性を奨励するための単なるツールです。あなたが重要であると思われるポリシーや私たちが見落としている場合、私たちは貢献に非常に感謝するでしょう。または、あなた自身のプライベートなポリシーセットをPerl ::批評家に単純にロードすることができます。
Perl ::批評家のモジュラー設計は、新しいポリシーの追加を促進することを目的としています。 PPIをある程度理解する必要がありますが、ほとんどのポリシーモジュールは非常に簡単で、約20行のコードのみが必要です。この配布に含まれるPerl :: Critic ::開発者ファイルを参照してください。新しいポリシーモジュールを作成する方法の段階的なデモンストレーションをご覧ください。
新しいポリシーモジュールを開発した場合は、 <[email protected]>に送信してください。Perl:: Critic Distributionにそれらを入力することを喜んで検討してください。または、Perl ::批評家プロジェクトに直接作業したい場合は、https://github.com/perl-critic/perl-critic.gitでリポジトリをフォークできます。
Perl ::批評家チームも雇用できます。組織に独自のコーディング標準がある場合、ローカルガイドラインを実施するためのカスタムポリシーを作成できます。または、コードベースが特定の欠陥パターンになりやすい場合、生産に入る前にこれらの高価な欠陥をキャッチするのに役立つポリシーを設計できます。 Perl ::批評家チームとニーズについて話し合うには、 <[email protected]>にお問い合わせください。
Perl ::批評家は次のモジュールを必要とします。
B ::キーワード
config :: tiny
例外::クラス
ファイル::仕様
ファイル:: spec :: unix
ファイル:: which
リスト:: someutils
リスト:: util
モジュール::プラグ可能
Perl :: Tidy
ポッド::呪文
PPI
pod :: plantext
ポッド:: select
ポッド::使用
読みます
スカラー:: util
文字列::フォーマット
用語:: ansicolor
テキスト:: parsewords
バージョン
https://groups.google.com/d/forum/perl-criticで公開メーリングリストを購読することをお勧めします。開発チームの少なくとも1人のメンバーが通常IRC://irc.perl.org/#perlcriticでぶらぶらしており、https://twitter.com/perlcriticのPerl ::批評家をフォローできます。
追加のポリシーの多数の分配があります。いくつかはここにリストされています:
Perl ::批評家::詳細
Perl ::批評家::前髪
Perl ::批評家:: Lax
Perl ::批評家:: Strictersubs
Perl ::批評家:: Swift
Perl ::批評家:: Tics
これらの分布により、ユニットテストでPerl ::批評家を使用できます。
テスト:: Perl ::批評家
テスト:: perl ::批評家::プログレッシブ
また、開発チームに知られているすべてのPerl ::批評家関連モジュールをインストールする配布もあります。
タスク:: Perl ::批評家
PERLコードの精査は、マシンは言うまでもなく、人間にとっては困難です。 Perl ::批評家::ポリシーからのバグ、特に偽陽性または偽陰性が見つかった場合は、https://github.com/perl-critic/perl-critic/issuesで提出してください。ありがとう。
Adam Kennedy- PPIを作成するために、Perl ::批評家の心と魂。
ダミアンコンウェイ - Perlのベストプラクティスを書くために、最終的に:)
Chris Dolan-最高の機能とポリシーモジュールを提供するため。
アンディ・レスター - 賢明な賢者であり、すべてのままのテストのマスター。
エリオットシャンク - 自称品質フリーク。
Giuseppe Maxia-すべての素晴らしいアイデアと前向きな励ましのために。
そして、私の妻、シャロン - 私の一晩のコードセッションを我慢してくれました。
また、20のPBPポリシーを実施するためにクリスドーランのプロジェクトをサポートするための助成金を提供してくれたPerl Foundationにも感謝します。 http://www.perlfoundation.org/april_1_2007_new_grant_awards
また、何らかの形で批評家に貢献した人々のこの不完全な洗濯リストにも感謝します:グレゴリー・オシュワルド、マイク・オレガン、トム・ヒュキンズ、オマー・ガジット、エヴァン・ザックス、ポール・ハワース、ソーヤーX、クリスチャン・ウォルデ、デイブ・ロルスキー、ジャクブ・ウィルアレックス・バルハッチ、セバスチャン・パスケ・トルム、スチュアート・ア・ジョンストン、ダン・ブック、スティーブン・ハンフリー、ジェームズ・ラスパス、ニック・トンキン、ハリソン・カッツ、ダグラス・シムズ、マーク・ファウラー、アラン・バーンド、ニール・バウアーズ、セルゲイ・ロマノフ、ガボール・スザボ、グラハマ・ノップ、マイクキンメル、ギヨーム・オーバート、デイブ・クロス、アニルヴァン・チャタジー、トッド・リナルド、グラハム・オリス、カレン・エーテリッジ、ジョナス・ブレマス、オラフ・アルダース、ジム・キーナン、スラヴェン・レジッチ、シモン・ニーズナスキ。
Jeffrey Ryan Thalhammer [email protected]
著作権(c)2005-2018想像力豊かなソフトウェアシステム。すべての権利は予約されています。
このプログラムはフリーソフトウェアです。 Perl自体と同じ条件で再配布したり、変更したりできます。このライセンスの全文は、このモジュールに含まれるライセンスファイルにあります。