App-CpanDak

 view release on metacpan or  search on metacpan

perlcritic.rc  view on Meta::CPAN


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

# Write `for(0..20)' instead of `for($i=0; $i<=20; $i++)'.
[ControlStructures::ProhibitCStyleForLoops]

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

# Don't write deeply nested loops and conditionals.
[ControlStructures::ProhibitDeepNests]
max_nests = 5

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

# Don't modify `$_' in list functions.
[ControlStructures::ProhibitMutatingListFunctions]

# Don't use operators like `not', `!~', and `le' within `until' and `unless'.
[-ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions]

# Write `if($condition){ do_something() }' instead of `do_something() if $condition'.
[-ControlStructures::ProhibitPostfixControls]

# Write `if(! $condition)' instead of `unless($condition)'.
[-ControlStructures::ProhibitUnlessBlocks]

# Don't write code after an unconditional `die, exit, or next'.
[ControlStructures::ProhibitUnreachableCode]

# Write `while(! $condition)' instead of `until($condition)'.
[ControlStructures::ProhibitUntilBlocks]

# Check your spelling.
[-Documentation::PodSpelling]

# The `=head1 NAME' section should match the package.
[-Documentation::RequirePackageMatchesPodName]

# All POD should be after `__END__'.
[-Documentation::RequirePodAtEnd]

# Organize your POD into the customary sections.
[-Documentation::RequirePodSections]

# Use functions from Carp instead of `warn' or `die'.
[ErrorHandling::RequireCarping]

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

# Discourage stuff like `@files = `ls $directory`'.
[InputOutput::ProhibitBacktickOperators]

# Write `open my $fh, q{<}, $filename;' instead of `open FH, q{<}, $filename;'.
[InputOutput::ProhibitBarewordFileHandles]
severity = 2

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

# Use prompt() instead of -t.
[InputOutput::ProhibitInteractiveTest]

# Use `local $/ = undef' or File::Slurp instead of joined readline.
[InputOutput::ProhibitJoinedReadline]

# Never write `select($fh)'.
[InputOutput::ProhibitOneArgSelect]

# Write `while( $line = <> ){...}' instead of `for(<>){...}'.
[InputOutput::ProhibitReadlineInForLoop]

# Write `open $fh, q{<}, $filename;' instead of `open $fh, "<$filename";'.
[InputOutput::ProhibitTwoArgOpen]
severity = 2

# Write `print {$FH} $foo, $bar;' instead of `print $FH $foo, $bar;'.
[-InputOutput::RequireBracedFileHandleWithPrint]

# Close filehandles as soon as possible after opening them.
[-InputOutput::RequireBriefOpen]

# Write `my $error = close $fh;' instead of `close $fh;'.
[-InputOutput::RequireCheckedClose]

# Write `my $error = open $fh, $mode, $filename;' instead of `open $fh, $mode, $filename;'.
[-InputOutput::RequireCheckedOpen]

# Return value of flagged function ignored.
[-InputOutput::RequireCheckedSyscalls]

# Write `open $fh, q{<:encoding(UTF-8)}, $filename;' instead of `open $fh, q{{<:utf8}, $filename;'.
[InputOutput::RequireEncodingWithUTF8Layer]

# Do not use `format'.
[Miscellanea::ProhibitFormats]

# Do not use `tie'.
[Miscellanea::ProhibitTies]

# Forbid a bare `## no critic'
[Miscellanea::ProhibitUnrestrictedNoCritic]

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

# Export symbols via `@EXPORT_OK' or `%EXPORT_TAGS' instead of `@EXPORT'.
[Modules::ProhibitAutomaticExportation]

# Avoid putting conditional logic around compile-time includes.
[Modules::ProhibitConditionalUseStatements]

# Minimize complexity in code that is outside of subroutines.
[Modules::ProhibitExcessMainComplexity]
max_mccabe = 20

# Put packages (especially subclasses) in separate files.
[Modules::ProhibitMultiplePackages]
severity = 2

# Write `require Module' instead of `require 'Module.pm''.



( run in 2.510 seconds using v1.01-cache-2.11-cpan-6aa56a78535 )