Perlcritic config - finding the names of the policies that generate an error?

1.7k Views Asked by At

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!

6

There are 6 best solutions below

0
On BEST ANSWER

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)
0
On

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
1
On

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.

0
On

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
0
On

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.

1
On