Perl::Critic::PolicySummary man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Perl::Critic::PolicySuUseryContributed Perl DocuPerl::Critic::PolicySummary(3)

NAME
       Perl::Critic::PolicySummary - Descriptions of the Policy modules
       included with Perl::Critic itself.

DESCRIPTION
       The following Policy modules are distributed with Perl::Critic. (There
       are additional Policies that can be found in add-on distributions.)
       The Policy modules have been categorized according to the table of
       contents in Damian Conway's book Perl Best Practices. Since most coding
       standards take the form "do this..." or "don't do that...", I have
       adopted the convention of naming each module "RequireSomething" or
       "ProhibitSomething".  Each Policy is listed here with its default
       severity.  If you don't agree with the default severity, you can change
       it in your .perlcriticrc file (try "perlcritic --profile-proto" for a
       starting version).  See the documentation of each module for its
       specific details.

POLICIES
   BuiltinFunctions::ProhibitBooleanGrep
       Use "List::MoreUtils::any" instead of "grep" in boolean context.
       [Default severity 2]

   BuiltinFunctions::ProhibitComplexMappings
       Map blocks should have a single statement. [Default severity 3]

   BuiltinFunctions::ProhibitLvalueSubstr
       Use 4-argument "substr" instead of writing "substr($foo, 2, 6) = $bar".
       [Default severity 3]

   BuiltinFunctions::ProhibitReverseSortBlock
       Forbid $b before $a in sort blocks. [Default severity 1]

   BuiltinFunctions::ProhibitSleepViaSelect
       Use Time::HiRes instead of something like "select(undef, undef, undef,
       .05)". [Default severity 5]

   BuiltinFunctions::ProhibitStringyEval
       Write "eval { my $foo; bar($foo) }" instead of "eval "my $foo;
       bar($foo);"". [Default severity 5]

   BuiltinFunctions::ProhibitStringySplit
       Write "split /-/, $string" instead of "split '-', $string". [Default
       severity 2]

   BuiltinFunctions::ProhibitUniversalCan
       Write "eval { $foo->can($name) }" instead of "UNIVERSAL::can($foo,
       $name)". [Default severity 3]

   BuiltinFunctions::ProhibitUniversalIsa
       Write "eval { $foo->isa($pkg) }" instead of "UNIVERSAL::isa($foo,
       $pkg)". [Default severity 3]

   BuiltinFunctions::ProhibitVoidGrep
       Don't use "grep" in void contexts. [Default severity 3]

   BuiltinFunctions::ProhibitVoidMap
       Don't use "map" in void contexts. [Default severity 3]

   BuiltinFunctions::RequireBlockGrep
       Write "grep { $_ =~ /$pattern/ } @list" instead of "grep /$pattern/,
       @list". [Default severity 4]

   BuiltinFunctions::RequireBlockMap
       Write "map { $_ =~ /$pattern/ } @list" instead of "map /$pattern/,
       @list". [Default severity 4]

   BuiltinFunctions::RequireGlobFunction
       Use "glob q{*}" instead of <*>. [Default severity 5]

   BuiltinFunctions::RequireSimpleSortBlock
       Sort blocks should have a single statement. [Default severity 3]

   ClassHierarchies::ProhibitAutoloading
       AUTOLOAD methods should be avoided. [Default severity 3]

   ClassHierarchies::ProhibitExplicitISA
       Employ "use base" instead of @ISA. [Default severity 3]

   ClassHierarchies::ProhibitOneArgBless
       Write "bless {}, $class;" instead of just "bless {};". [Default
       severity 5]

   CodeLayout::ProhibitHardTabs
       Use spaces instead of tabs. [Default severity 3]

   CodeLayout::ProhibitParensWithBuiltins
       Write "open $handle, $path" instead of "open($handle, $path)". [Default
       severity 1]

   CodeLayout::ProhibitQuotedWordLists
       Write "qw(foo bar baz)" instead of "('foo', 'bar', 'baz')". [Default
       severity 2]

   CodeLayout::ProhibitTrailingWhitespace
       Don't use whitespace at the end of lines. [Default severity 1]

   CodeLayout::RequireConsistentNewlines
       Use the same newline through the source. [Default severity 4]

   CodeLayout::RequireTidyCode
       Must run code through perltidy. [Default severity 1]

   CodeLayout::RequireTrailingCommas
       Put a comma at the end of every multi-line list declaration, including
       the last one. [Default severity 1]

   ControlStructures::ProhibitCStyleForLoops
       Write "for(0..20)" instead of "for($i=0; $i<=20; $i++)". [Default
       severity 2]

   ControlStructures::ProhibitCascadingIfElse
       Don't write long "if-elsif-elsif-elsif-elsif...else" chains. [Default
       severity 3]

   ControlStructures::ProhibitDeepNests
       Don't write deeply nested loops and conditionals. [Default severity 3]

   ControlStructures::ProhibitLabelsWithSpecialBlockNames
       Don't use labels that are the same as the special block names. [Default
       severity 4]

   ControlStructures::ProhibitMutatingListFunctions
       Don't modify $_ in list functions. [Default severity 5]

   ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions
       Don't use operators like "not", "!~", and "le" within "until" and
       "unless". [Default severity 3]

   ControlStructures::ProhibitPostfixControls
       Write "if($condition){ do_something() }" instead of "do_something() if
       $condition". [Default severity 2]

   ControlStructures::ProhibitUnlessBlocks
       Write "if(! $condition)" instead of "unless($condition)". [Default
       severity 2]

   ControlStructures::ProhibitUnreachableCode
       Don't write code after an unconditional "die, exit, or next". [Default
       severity 4]

   ControlStructures::ProhibitUntilBlocks
       Write "while(! $condition)" instead of "until($condition)". [Default
       severity 2]

   Documentation::PodSpelling
       Check your spelling. [Default severity 1]

   Documentation::RequirePackageMatchesPodName
       The "=head1 NAME" section should match the package. [Default severity
       1]

   Documentation::RequirePodAtEnd
       All POD should be after "__END__". [Default severity 1]

   Documentation::RequirePodLinksIncludeText
       Provide text to display with your pod links. [Default severity 2]

   Documentation::RequirePodSections
       Organize your POD into the customary sections. [Default severity 2]

   ErrorHandling::RequireCarping
       Use functions from Carp instead of "warn" or "die". [Default severity
       3]

   ErrorHandling::RequireCheckingReturnValueOfEval
       You can't depend upon the value of $@/$EVAL_ERROR to tell whether an
       "eval" failed. [Default severity 3]

   InputOutput::ProhibitBacktickOperators
       Discourage stuff like "@files = `ls $directory`". [Default severity 3]

   InputOutput::ProhibitBarewordFileHandles
       Write "open my $fh, q{<}, $filename;" instead of "open FH, q{<},
       $filename;". [Default severity 5]

   InputOutput::ProhibitExplicitStdin
       Use "<>" or "<ARGV>" or a prompting module instead of "<STDIN>".
       [Default severity 4]

   InputOutput::ProhibitInteractiveTest
       Use prompt() instead of -t. [Default severity 5]

   InputOutput::ProhibitJoinedReadline
       Use "local $/ = undef" or File::Slurp instead of joined readline.
       [Default severity 3]

   InputOutput::ProhibitOneArgSelect
       Never write "select($fh)". [Default severity 4]

   InputOutput::ProhibitReadlineInForLoop
       Write "while( $line = <> ){...}" instead of "for(<>){...}". [Default
       severity 4]

   InputOutput::ProhibitTwoArgOpen
       Write "open $fh, q{<}, $filename;" instead of "open $fh,
       "<$filename";". [Default severity 5]

   InputOutput::RequireBracedFileHandleWithPrint
       Write "print {$FH} $foo, $bar;" instead of "print $FH $foo, $bar;".
       [Default severity 1]

   InputOutput::RequireBriefOpen
       Close filehandles as soon as possible after opening them. [Default
       severity 4]

   InputOutput::RequireCheckedClose
       Write "my $error = close $fh;" instead of "close $fh;". [Default
       severity 2]

   InputOutput::RequireCheckedOpen
       Write "my $error = open $fh, $mode, $filename;" instead of "open $fh,
       $mode, $filename;". [Default severity 3]

   InputOutput::RequireCheckedSyscalls
       Return value of flagged function ignored. [Default severity 1]

   InputOutput::RequireEncodingWithUTF8Layer
       Write "open $fh, q{<:encoding(UTF-8)}, $filename;" instead of "open
       $fh, q{{<:utf8}, $filename;". [Default severity 5]

   Miscellanea::ProhibitFormats
       Do not use "format". [Default severity 3]

   Miscellanea::ProhibitTies
       Do not use "tie". [Default severity 2]

   Miscellanea::ProhibitUnrestrictedNoCritic
       Forbid a bare "## no critic" [Default severity 3]

   Miscellanea::ProhibitUselessNoCritic
       Remove ineffective "## no critic" annotations. [Default severity 2]

   Miscellanea::RequireRcsKeywords
       Put source-control keywords in every file. [Default severity 2]

   Modules::ProhibitAutomaticExportation
       Export symbols via @EXPORT_OK or %EXPORT_TAGS instead of @EXPORT.
       [Default severity 4]

   Modules::ProhibitConditionalUseStatements
       Avoid putting conditional logic around compile-time includes. [Default
       severity 3]

   Modules::ProhibitEvilModules
       Ban modules that aren't blessed by your shop. [Default severity 5]

   Modules::ProhibitExcessMainComplexity
       Minimize complexity in code that is outside of subroutines. [Default
       severity 3]

   Modules::ProhibitMultiplePackages
       Put packages (especially subclasses) in separate files. [Default
       severity 4]

   Modules::RequireBarewordIncludes
       Write "require Module" instead of "require 'Module.pm'". [Default
       severity 5]

   Modules::RequireEndWithOne
       End each module with an explicitly "1;" instead of some funky
       expression. [Default severity 4]

   Modules::RequireExplicitPackage
       Always make the "package" explicit. [Default severity 4]

   Modules::RequireFilenameMatchesPackage
       Package declaration must match filename. [Default severity 5]

   Modules::RequireNoMatchVarsWithUseEnglish
       "use English" must be passed a "-no_match_vars" argument. [Default
       severity 2]

   Modules::RequireVersionVar
       Give every module a $VERSION number. [Default severity 2]

   NamingConventions::Capitalization
       Distinguish different program components by case. [Default severity 1]

   NamingConventions::ProhibitAmbiguousNames
       Don't use vague variable or subroutine names like 'last' or 'record'.
       [Default severity 3]

   Objects::ProhibitIndirectSyntax
       Prohibit indirect object call syntax. [Default severity 4]

   References::ProhibitDoubleSigils
       Write "@{ $array_ref }" instead of @$array_ref. [Default severity 2]

   RegularExpressions::ProhibitCaptureWithoutTest
       Capture variable used outside conditional. [Default severity 3]

   RegularExpressions::ProhibitComplexRegexes
       Split long regexps into smaller "qr//" chunks. [Default severity 3]

   RegularExpressions::ProhibitEnumeratedClasses
       Use named character classes instead of explicit character lists.
       [Default severity 1]

   RegularExpressions::ProhibitEscapedMetacharacters
       Use character classes for literal meta-characters instead of escapes.
       [Default severity 1]

   RegularExpressions::ProhibitFixedStringMatches
       Use "eq" or hash instead of fixed-pattern regexps. [Default severity 2]

   RegularExpressions::ProhibitSingleCharAlternation
       Use "[abc]" instead of "a|b|c". [Default severity 1]

   RegularExpressions::ProhibitUnusedCapture
       Only use a capturing group if you plan to use the captured value.
       [Default severity 3]

   RegularExpressions::ProhibitUnusualDelimiters
       Use only "//" or "{}" to delimit regexps. [Default severity 1]

   RegularExpressions::RequireBracesForMultiline
       Use "{" and "}" to delimit multi-line regexps. [Default severity 1]

   RegularExpressions::RequireDotMatchAnything
       Always use the "/s" modifier with regular expressions. [Default
       severity 2]

   RegularExpressions::RequireExtendedFormatting
       Always use the "/x" modifier with regular expressions. [Default
       severity 3]

   RegularExpressions::RequireLineBoundaryMatching
       Always use the "/m" modifier with regular expressions. [Default
       severity 2]

   Subroutines::ProhibitAmpersandSigils
       Don't call functions with a leading ampersand sigil. [Default severity
       2]

   Subroutines::ProhibitBuiltinHomonyms
       Don't declare your own "open" function. [Default severity 4]

   Subroutines::ProhibitExcessComplexity
       Minimize complexity by factoring code into smaller subroutines.
       [Default severity 3]

   Subroutines::ProhibitExplicitReturnUndef
       Return failure with bare "return" instead of "return undef". [Default
       severity 5]

   Subroutines::ProhibitManyArgs
       Too many arguments. [Default severity 3]

   Subroutines::ProhibitNestedSubs
       "sub never { sub correct {} }". [Default severity 5]

   Subroutines::ProhibitReturnSort
       Behavior of "sort" is not defined if called in scalar context. [Default
       severity 5]

   Subroutines::ProhibitSubroutinePrototypes
       Don't write "sub my_function (@@) {}". [Default severity 5]

   Subroutines::ProhibitUnusedPrivateSubroutines
       Prevent unused private subroutines. [Default severity 3]

   Subroutines::ProtectPrivateSubs
       Prevent access to private subs in other packages. [Default severity 3]

   Subroutines::RequireArgUnpacking
       Always unpack @_ first. [Default severity 4]

   Subroutines::RequireFinalReturn
       End every path through a subroutine with an explicit "return"
       statement. [Default severity 4]

   TestingAndDebugging::ProhibitNoStrict
       Prohibit various flavors of "no strict". [Default severity 5]

   TestingAndDebugging::ProhibitNoWarnings
       Prohibit various flavors of "no warnings". [Default severity 4]

   TestingAndDebugging::ProhibitProlongedStrictureOverride
       Don't turn off strict for large blocks of code. [Default severity 4]

   TestingAndDebugging::RequireTestLabels
       Tests should all have labels. [Default severity 3]

   TestingAndDebugging::RequireUseStrict
       Always "use strict". [Default severity 5]

   TestingAndDebugging::RequireUseWarnings
       Always "use warnings". [Default severity 4]

   ValuesAndExpressions::ProhibitCommaSeparatedStatements
       Don't use the comma operator as a statement separator. [Default
       severity 4]

   ValuesAndExpressions::ProhibitComplexVersion
       Prohibit version values from outside the module. [Default severity 3]

   ValuesAndExpressions::ProhibitConstantPragma
       Don't "use constant FOO => 15". [Default severity 4]

   ValuesAndExpressions::ProhibitEmptyQuotes
       Write "q{}" instead of ''. [Default severity 2]

   ValuesAndExpressions::ProhibitEscapedCharacters
       Write "\N{DELETE}" instead of "\x7F", etc. [Default severity 2]

   ValuesAndExpressions::ProhibitImplicitNewlines
       Use concatenation or HEREDOCs instead of literal line breaks in
       strings. [Default severity 3]

   ValuesAndExpressions::ProhibitInterpolationOfLiterals
       Always use single quotes for literal strings. [Default severity 1]

   ValuesAndExpressions::ProhibitLeadingZeros
       Write "oct(755)" instead of 0755. [Default severity 5]

   ValuesAndExpressions::ProhibitLongChainsOfMethodCalls
       Long chains of method calls indicate tightly coupled code. [Default
       severity 2]

   ValuesAndExpressions::ProhibitMagicNumbers
       Don't use values that don't explain themselves. [Default severity 2]

   ValuesAndExpressions::ProhibitMismatchedOperators
       Don't mix numeric operators with string operands, or vice-versa.
       [Default severity 3]

   ValuesAndExpressions::ProhibitMixedBooleanOperators
       Write " !$foo && $bar || $baz " instead of " not $foo && $bar or $baz".
       [Default severity 4]

   ValuesAndExpressions::ProhibitNoisyQuotes
       Use "q{}" or "qq{}" instead of quotes for awkward-looking strings.
       [Default severity 2]

   ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters
       Don't use quotes ("'", """, "`") as delimiters for the quote-like
       operators. [Default severity 3]

   ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator
       Don't write " print <<'__END__' ". [Default severity 3]

   ValuesAndExpressions::ProhibitVersionStrings
       Don't use strings like "v1.4" or 1.4.5 when including other modules.
       [Default severity 3]

   ValuesAndExpressions::RequireConstantVersion
       Require $VERSION to be a constant rather than a computed value.
       [Default severity 2]

   ValuesAndExpressions::RequireInterpolationOfMetachars
       Warns that you might have used single quotes when you really wanted
       double-quotes. [Default severity 1]

   ValuesAndExpressions::RequireNumberSeparators
       Write " 141_234_397.0145 " instead of  141234397.0145 . [Default
       severity 2]

   ValuesAndExpressions::RequireQuotedHeredocTerminator
       Write " print <<'THE_END' " or " print <<"THE_END" ". [Default severity
       3]

   ValuesAndExpressions::RequireUpperCaseHeredocTerminator
       Write " <<'THE_END'; " instead of " <<'theEnd'; ". [Default severity 2]

   Variables::ProhibitConditionalDeclarations
       Do not write " my $foo = $bar if $baz; ". [Default severity 5]

   Variables::ProhibitEvilVariables
       Ban variables that aren't blessed by your shop. [Default severity 5]

   Variables::ProhibitLocalVars
       Use "my" instead of "local", except when you have to. [Default severity
       2]

   Variables::ProhibitMatchVars
       Avoid "$`", $&, "$'" and their English equivalents. [Default severity
       4]

   Variables::ProhibitPackageVars
       Eliminate globals declared with "our" or "use vars". [Default severity
       3]

   Variables::ProhibitPerl4PackageNames
       Use double colon (::) to separate package name components instead of
       single quotes ('). [Default severity 2]

   Variables::ProhibitPunctuationVars
       Write $EVAL_ERROR instead of $@. [Default severity 2]

   Variables::ProhibitReusedNames
       Do not reuse a variable name in a lexical scope [Default severity 3]

   Variables::ProhibitUnusedVariables
       Don't ask for storage you don't need. [Default severity 3]

   Variables::ProtectPrivateVars
       Prevent access to private vars in other packages. [Default severity 3]

   Variables::RequireInitializationForLocalVars
       Write "local $foo = $bar;" instead of just "local $foo;". [Default
       severity 3]

   Variables::RequireLexicalLoopIterators
       Write "for my $element (@list) {...}" instead of "for $element (@list)
       {...}". [Default severity 5]

   Variables::RequireLocalizedPunctuationVars
       Magic variables should be assigned as "local". [Default severity 4]

   Variables::RequireNegativeIndices
       Negative array index should be used. [Default severity 4]

VERSION
       This is part of Perl::Critic version 1.116.

AUTHOR
       Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>

COPYRIGHT
       Copyright (c) 2005-2011 Imaginative Software Systems.  All rights
       reserved.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.  The full text of this license can
       be found in the LICENSE file included with this module.

perl v5.14.1			  2011-07-22	Perl::Critic::PolicySummary(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net