Question

I'm trying to get started using Perlcritic, and I'm working on refining my own configuration, leaving out all the rules I don't agree with or don't think are appropriate for me.

I know that I can do this using a .perlcrirticrc file, and that I can use the exclude directive in that file to exclude the policies I don't agree with, but to do that, I need to find the name of the policy that is causing the error I want to suppress.

I can't find a list of the policies in the documentation on CPAN anywhere, and the error messages do not give the name of the policy that is generating, so I'm at a total loss as to how I am supposed to generate my exclude list.

If anyone could point me to a way of mapping errors to policies, or even just point me to a list of the policies in core I'd be most grateful!

Was it helpful?

Solution

The highly-unintuitive --verbose flag is what you want, according to How do I make Perl::Critic show the offending policy in its output?

gdarcy@greg-pc:~$ perlcritic --verbose 8 src/Some/Module.pm 
[TestingAndDebugging::RequireUseStrict] Code before strictures are enabled at line 19, column 1.  (Severity: 5)
[Variables::RequireLexicalLoopIterators] Loop iterator is not lexical at line 1899, column 4.  (Severity: 5)
[Variables::RequireLexicalLoopIterators] Loop iterator is not lexical at line 1911, column 4.  (Severity: 5)
[Variables::RequireLexicalLoopIterators] Loop iterator is not lexical at line 2487, column 4.  (Severity: 5)
[Variables::RequireLexicalLoopIterators] Loop iterator is not lexical at line 3902, column 2.  (Severity: 5)

OTHER TIPS

Where I work we have a project perlcriticrc file that contains the line

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

The [%p] shows the policy similar to --verbose 8 on the command line.

verbose setting of 9 will show you the policy names:

perlcritic --verbose 9

The generatestats script which can be found on CPAN via the MANIFEST link shows a summary of policy names.

The --exclude and --include options are best used for ad-hoc tweaking of your Policy set at the command line. To define your default set of Policies, you should individually enable/disable them in your .perlcriticrc file. It is actually quite easy:

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

Now ~/.perlcriticrc will contain all the Policies and their default configuration parameters, and a brief description of what each Policy does. Disable the ones you don't like by putting a '-' in front of the name of each policy, like this:

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

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

By default, Perl::Critic can choose from any Policy that you haven't explicitly disabled. So if you're only going to use a handful of Policies and you don't want to go through and disable 97 different Policies, then consider using the --only option, which tells Perl::Critic to only choose from the Policies that you explicitly enabled in your .perlcriticrc.

Remember, the .perlcriticrc file only defines the default Policies that Perl::Critic can choose from. You can always select a subset of those Policies by overriding the --severity, --theme, or --exclude options at the command line.

As others have pointed out, the --verbose option allows you to configure what information is displayed with each message (including the policy name, among other things). For example, if you wanted to see "POLICY_NAME: MESSAGE at LINE", you would do this:

$> perlcritic --verbose '%p: %m at line %l\n' MyModule.pm

Ask the CPAN index for modules in the P::C::Policy namespace. This includes policies not found in the main P::C distro.

$ 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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top