4

我正在尝试开始使用 Perlcritic,并且正在改进我自己的配置,忽略所有我不同意或认为不适合我的规则。

我知道我可以使用 .perlcrirticrc 文件来执行此操作,并且我可以使用该文件中的 exclude 指令来排除我不同意的策略,但要做到这一点,我需要找到该策略的名称导致我想抑制的错误。

我在任何地方都找不到 CPAN 文档中的策略列表,并且错误消息没有给出正在生成的策略的名称,所以我完全不知道应该如何生成我的排除列表。

如果有人能指出将错误映射到策略的方法,或者甚至只是指出核心中的策略列表,我将不胜感激!

4

6 回答 6

6

高度不直观的 --verbose 标志是您想要的,根据How do I make Perl::Critic 在其输出中显示违规策略?

gdarcy@greg-pc:~$ perlcritic --verbose 8 src/Some/Module.pm
[TestingAndDebugging::RequireUseStrict] 在第 19 行第 1 列启用限制之前的代码。(严重性:5)
[Variables::RequireLexicalLoopIterators] 循环迭代器在第 1899 行第 4 列不是词法的。(严重性:5)
[Variables::RequireLexicalLoopIterators] 循环迭代器在第 1911 行第 4 列不是词法的。(严重性:5)
[Variables::RequireLexicalLoopIterators] 循环迭代器在第 2487 行第 4 列不是词法的。(严重性:5)
[Variables::RequireLexicalLoopIterators] 循环迭代器在第 3902 行第 2 列不是词法的。(严重性:5)
于 2011-11-18T15:47:08.727 回答
3

在我工作的地方,我们有一个项目 perlcriticrc 文件,其中包含该行

verbose = [%p] %m at line %l, column %c.  %e.  (Severity: %s)\n

显示[%p]类似于--verbose 8命令行的策略。

于 2011-11-18T17:09:10.513 回答
2

也许Perl::Critic::PolicySummary

于 2011-11-18T15:28:32.173 回答
2

verbose设置为 9 将显示策略名称:

perlcritic --verbose 9

generatestats可以通过 MANIFEST 链接在CPAN上找到的脚本显示了策略名称的摘要。

于 2011-11-18T15:48:28.820 回答
2

--exclude 和 --include 选项最适合在命令行中临时调整策略集。要定义您的默认策略集,您应该在 .perlcriticrc 文件中单独启用/禁用它们。其实很简单:

$> perlcritic --profile-proto > ~/.perlcriticrc

现在 ~/.perlcriticrc 将包含所有策略及其默认配置参数,以及每个策略的简要说明。通过在每个策略的名称前添加“-”来禁用您不喜欢的策略,如下所示:

[TestingAndDebugging::RequireUseStrict]  # This policy is enabled (default)

[-TestingAndDebugging::RequireUseWarnings] # This policy is now disabled

默认情况下,Perl::Critic 可以从您没有明确禁用的任何策略中进行选择。因此,如果您只打算使用少数几个策略并且您不想通过并禁用 97 种不同的策略,那么请考虑使用 --only 选项,它告诉 Perl::Critic 仅从以下策略中进行选择您在 .perlcriticrc 中明确启用

请记住,.perlcriticrc 文件只定义了 Perl::Critic 可以选择的默认策略。您始终可以通过在命令行覆盖 --severity、--theme 或 --exclude 选项来选择这些策略的子集。

正如其他人指出的那样, --verbose 选项允许您配置每条消息显示的信息(包括策略名称等)。例如,如果您想查看“POLICY_NAME: MESSAGE at LINE”,您可以这样做:

$> perlcritic --verbose '%p: %m at line %l\n' MyModule.pm
于 2011-11-19T02:38:44.397 回答
0

向 P::C::Policy 命名空间中的模块查询 CPAN 索引。这包括在主 P::C 发行版中找不到的策略。

$ cpan

cpan shell -- CPAN exploration and modules installation (v1.9800)
Enter 'h' for help.

cpan[1]> m /Perl::Critic::Policy::/
  Database was generated on Fri, 18 Nov 2011 14:38:48 GMT
Module  = Perl::Critic::Policy::Bangs::ProhibitBitwiseOperators (PETDANCE/Perl-Critic-Bangs-1.08.tar.gz)
Module  = Perl::Critic::Policy::Bangs::ProhibitCommentedOutCode (PETDANCE/Perl-Critic-Bangs-1.08.tar.gz)
Module  = Perl::Critic::Policy::Bangs::ProhibitFlagComments (PETDANCE/Perl-Critic-Bangs-1.08.tar.gz)
Module  = Perl::Critic::Policy::Bangs::ProhibitNoPlan (PETDANCE/Perl-Critic-Bangs-1.08.tar.gz)
Module  = Perl::Critic::Policy::Bangs::ProhibitNumberedNames (PETDANCE/Perl-Critic-Bangs-1.08.tar.gz)
Module  = Perl::Critic::Policy::Bangs::ProhibitRefProtoOrProto (PETDANCE/Perl-Critic-Bangs-1.08.tar.gz)
Module  = Perl::Critic::Policy::Bangs::ProhibitUselessRegexModifiers (PETDANCE/Perl-Critic-Bangs-1.08.tar.gz)
Module  = Perl::Critic::Policy::Bangs::ProhibitVagueNames (PETDANCE/Perl-Critic-Bangs-1.08.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitComplexMappings (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitReverseSortBlock (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::ProhibitHardTabs (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::ProhibitHashBarewords (MARCELO/Perl-Critic-Itch-0.07.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::RequireASCII (ELLIOTJS/Perl-Critic-More-1.000.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::RequireFinalSemicolon (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::RequireTidyCode (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::RequireTrailingCommaAtNewline (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::CodeLayout::RequireTrailingCommas (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  < Perl::Critic::Policy::CodeLayout::RequireUseUTF8 (ELLIOTJS/Perl-Critic-Swift-v1.0.3.tar.gz)
Module  = Perl::Critic::Policy::Compatibility::ConstantLeadingUnderscore (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Compatibility::ConstantPragmaHash (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Compatibility::Gtk2Constants (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Compatibility::PerlMinimumVersionAndWhy (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Compatibility::PodMinimumVersion (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  < Perl::Critic::Policy::Compatibility::ProhibitThreeArgumentOpen (ELLIOTJS/Perl-Critic-Compatibility-1.001.tar.gz)
Module  = Perl::Critic::Policy::Compatibility::ProhibitUnixDevNull (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitDeepNests (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Documentation::PodSpelling (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Documentation::ProhibitAdjacentLinks (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Documentation::ProhibitBadAproposMarkup (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Documentation::ProhibitLinkToSelf (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Documentation::ProhibitParagraphTwoDots (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Documentation::ProhibitUnbalancedParens (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Documentation::ProhibitVerbatimMarkup (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Documentation::RequireEndBeforeLastPod (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Documentation::RequireLinkedURLs (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  < Perl::Critic::Policy::Documentation::RequirePODUseEncodingUTF8 (ELLIOTJS/Perl-Critic-Swift-v1.0.3.tar.gz)
Module  = Perl::Critic::Policy::Documentation::RequirePackageMatchesPodName (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Documentation::RequirePodAtEnd (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Documentation::RequirePodLinksIncludeText (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Documentation::RequirePodSections (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  < Perl::Critic::Policy::Dynamic::NoIndirect (VPIT/Perl-Critic-Policy-Dynamic-NoIndirect-0.06.tar.gz)
Module  < Perl::Critic::Policy::Dynamic::ValidateAgainstSymbolTable (THALJEF/Perl-Critic-Dynamic-0.05.tar.gz)
Module  = Perl::Critic::Policy::Editor::RequireEmacsFileVariables (ELLIOTJS/Perl-Critic-More-1.000.tar.gz)
Module  = Perl::Critic::Policy::ErrorHandling::RequireCarping (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ErrorHandling::RequireCheckingReturnValueOfEval (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ErrorHandling::RequireUseOfExceptions (ELLIOTJS/Perl-Critic-More-1.000.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::RequireBriefOpen (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::RequireCheckedClose (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::RequireCheckedOpen (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::InputOutput::RequireEncodingWithUTF8Layer (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Lax::ProhibitComplexMappings::LinesNotStatements (RJBS/Perl-Critic-Lax-0.008.tar.gz)
Module  = Perl::Critic::Policy::Lax::ProhibitEmptyQuotes::ExceptAsFallback (RJBS/Perl-Critic-Lax-0.008.tar.gz)
Module  = Perl::Critic::Policy::Lax::ProhibitLeadingZeros::ExceptChmod (RJBS/Perl-Critic-Lax-0.008.tar.gz)
Module  = Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire (RJBS/Perl-Critic-Lax-0.008.tar.gz)
Module  = Perl::Critic::Policy::Lax::RequireEndWithTrueConst (RJBS/Perl-Critic-Lax-0.008.tar.gz)
Module  = Perl::Critic::Policy::Lax::RequireExplicitPackage::ExceptForPragmata (RJBS/Perl-Critic-Lax-0.008.tar.gz)
Module  = Perl::Critic::Policy::Miscellanea::ProhibitFormats (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Miscellanea::ProhibitTies (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Miscellanea::ProhibitUnrestrictedNoCritic (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Miscellanea::ProhibitUselessNoCritic (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Miscellanea::RequireRcsKeywords (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Miscellanea::TextDomainPlaceholders (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Miscellanea::TextDomainUnused (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Modules::PerlMinimumVersion (ELLIOTJS/Perl-Critic-More-1.000.tar.gz)
Module  = Perl::Critic::Policy::Modules::ProhibitAutomaticExportation (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::ProhibitConditionalUseStatements (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::ProhibitEvilModules (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::ProhibitExcessMainComplexity (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::ProhibitModuleShebang (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Modules::ProhibitMultiplePackages (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::ProhibitPOSIXimport (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Modules::ProhibitUseQuotedVersion (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Modules::RequireBarewordIncludes (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::RequireEndWithOne (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::RequireExplicitInclusion (THALJEF/strictersubs/Perl-Critic-StricterSubs-0.03.tar.gz)
Module  = Perl::Critic::Policy::Modules::RequireExplicitPackage (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Modules::RequirePerlVersion (ELLIOTJS/Perl-Critic-More-1.000.tar.gz)
Module  = Perl::Critic::Policy::Modules::RequireVersionVar (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::NamingConventions::Capitalization (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  < Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseSubs (ELLIOTJS/Perl-Critic-Deprecated-1.108.tar.gz)
Module  < Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars (ELLIOTJS/Perl-Critic-Deprecated-1.108.tar.gz)
Module  < Perl::Critic::Policy::OTRS::ProhibitDumper (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::ProhibitFetchrowHashref (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::ProhibitLocaltime (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::ProhibitLowPrecendeceOps (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::ProhibitOpen (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::ProhibitRequire (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::ProhibitSomeCoreFunctions (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::RequireCamelCase (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::RequireParensWithMethods (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  < Perl::Critic::Policy::OTRS::RequireTrueReturnValueForModules (RENEEB/Perl-Critic-OTRS-0.01.tar.gz)
Module  = Perl::Critic::Policy::Objects::ProhibitIndirectSyntax (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::References::ProhibitDoubleSigils (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::ProhibitCaptureWithoutTest (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::ProhibitComplexRegexes (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::ProhibitEnumeratedClasses (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::ProhibitEscapedMetacharacters (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::ProhibitSingleCharAlternation (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::ProhibitUnusedCapture (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::ProhibitUnusualDelimiters (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::RequireBracesForMultiline (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::RequireDotMatchAnything (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::RequireExtendedFormatting (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::RegularExpressions::RequireLineBoundaryMatching (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Storable::ProhibitStoreOrFreeze (MATTD/Perl-Critic-Storable-0.01.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitAmpersandSigils (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitBuiltinHomonyms (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitCallsToUndeclaredSubs (THALJEF/strictersubs/Perl-Critic-StricterSubs-0.03.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitCallsToUnexportedSubs (THALJEF/strictersubs/Perl-Critic-StricterSubs-0.03.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitExcessComplexity (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitExportingUndeclaredSubs (THALJEF/strictersubs/Perl-Critic-StricterSubs-0.03.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitManyArgs (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitNestedSubs (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitQualifiedSubDeclarations (THALJEF/strictersubs/Perl-Critic-StricterSubs-0.03.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitReturnSort (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitSubroutinePrototypes (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProhibitUnusedPrivateSubroutines (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::ProtectPrivateSubs (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::RequireArgUnpacking (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Subroutines::RequireFinalReturn (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::TestingAndDebugging::ProhibitNoWarnings (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::TestingAndDebugging::ProhibitProlongedStrictureOverride (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::TestingAndDebugging::RequireTestLabels (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Tics::ProhibitLongLines (RJBS/Perl-Critic-Tics-0.006.tar.gz)
Module  = Perl::Critic::Policy::Tics::ProhibitManyArrows (RJBS/Perl-Critic-Tics-0.006.tar.gz)
Module  = Perl::Critic::Policy::Tics::ProhibitUseBase (RJBS/Perl-Critic-Tics-0.006.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ConstantBeforeLt (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::NotWithCompare (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitAccessOfPrivateData (KCOWGILL/Perl-Critic-Nits-v1.0.0.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitArrayAssignAref (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitBarewordDoubleColon (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitCommaSeparatedStatements (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitComplexVersion (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitConstantPragma (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyCommas (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyQuotes (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitEscapedCharacters (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitFiletest_f (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitImplicitNewlines (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitLongChainsOfMethodCalls (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitMismatchedOperators (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitNoisyQuotes (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitNullStatements (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitUnknownBackslash (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::ProhibitVersionStrings (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::RequireConstantVersion (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::RequireNumberSeparators (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::RequireNumericVersion (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::RequireQuotedHeredocTerminator (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::RestrictLongStrings (ELLIOTJS/Perl-Critic-More-1.000.tar.gz)
Module  = Perl::Critic::Policy::ValuesAndExpressions::UnexpandedSpecialLiteral (KRYDE/Perl-Critic-Pulp-65.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitConditionalDeclarations (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitEvilVariables (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitLocalVars (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitMatchVars (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitPackageVars (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitPerl4PackageNames (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitPunctuationVars (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitReusedNames (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitUnusedVariables (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProhibitUselessInitialization (JTRAMMELL/Perl-Critic-PetPeeves-JTRAMMELL-0.02.tar.gz)
Module  = Perl::Critic::Policy::Variables::ProtectPrivateVars (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::RequireInitializationForLocalVars (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::RequireLexicalLoopIterators (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::RequireLocalizedPunctuationVars (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  = Perl::Critic::Policy::Variables::RequireNegativeIndices (ELLIOTJS/Perl-Critic-1.116.tar.gz)
Module  < Perl::Critic::Policy::logicLAB::ProhibitShellDispatch (JONASBN/Perl-Critic-Policy-logicLAB-ProhibitShellDispatch-0.01.tar.gz)
Module  < Perl::Critic::Policy::logicLAB::ProhibitUseLib (JONASBN/Perl-Critic-Policy-logicLAB-ProhibitUseLib-0.01.tar.gz)
Module  < Perl::Critic::Policy::logicLAB::RequireSheBang (JONASBN/Perl-Critic-Policy-logicLAB-RequireSheBang-0.03.tar.gz)
Module  = Perl::Critic::Policy::logicLAB::RequireVersionFormat (JONASBN/Perl-Critic-Policy-logicLAB-RequireVersionFormat-0.03.tar.gz)
225 items found
于 2011-11-18T15:49:18.170 回答