generated.
+Build
+MANIFEST
+META.yml
+Makefile
+README
cover_db
lib/Perl/Critic/PolicySummary.pod
t/*_without_optional_dependencies.t
my $class = Module::Build->subclass( code => <<'END_SUBCLASS' );
+ sub ACTION_test {
+ my ($self) = @_;
+
+ $self->depends_on('manifest');
+
+ return $self->SUPER::ACTION_test();
+ } # end ACTION_distdir
+
sub ACTION_authortest {
my ($self) = @_;
$self->depends_on('authortest');
- return $self->SUPER::ACTION_distdir;
+ return $self->SUPER::ACTION_distdir();
} # end ACTION_distdir
END_SUBCLASS
dist_author => 'Jeffrey Thalhammer <thaljef@cpan.org>',
dist_abstract => 'Critique Perl source code for best-practices.',
license => 'perl',
+ dynamic_config => 1,
+ create_readme => 1,
+ create_packlist => 1,
+ sign => 0,
requires => {
'B::Keywords' => 1.05,
add_to_cleanup => [
qw<
- MANIFEST.bak
+ lib/Perl/Critic/PolicySummary.pod
Makefile
Makefile.old
- lib/Perl/Critic/PolicySummary.pod
+ MANIFEST
+ MANIFEST.bak
+ META.yml
pm_to_blib
+ README
t/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.run
t/Variables/RequireLocalizedPunctuationVars.run
>,
+++ /dev/null
-bin/perlcritic
-Build.PL
-Changes
-examples/generatestats
-examples/loadanalysisdb
-examples/perlcriticrc
-examples/perlcriticrc-conway
-extras/KomodoIntegration.pod
-extras/perlcritic.el
-inc/Devel/AssertOS.pm
-inc/Devel/AssertOS/AIX.pm
-inc/Devel/AssertOS/Amiga.pm
-inc/Devel/AssertOS/Apple.pm
-inc/Devel/AssertOS/BeOS.pm
-inc/Devel/AssertOS/BSDOS.pm
-inc/Devel/AssertOS/Cygwin.pm
-inc/Devel/AssertOS/DEC.pm
-inc/Devel/AssertOS/DGUX.pm
-inc/Devel/AssertOS/DragonflyBSD.pm
-inc/Devel/AssertOS/Dynix.pm
-inc/Devel/AssertOS/FreeBSD.pm
-inc/Devel/AssertOS/HPUX.pm
-inc/Devel/AssertOS/Interix.pm
-inc/Devel/AssertOS/Irix.pm
-inc/Devel/AssertOS/Linux.pm
-inc/Devel/AssertOS/MachTen.pm
-inc/Devel/AssertOS/MacOSclassic.pm
-inc/Devel/AssertOS/MacOSX.pm
-inc/Devel/AssertOS/MicrosoftWindows.pm
-inc/Devel/AssertOS/MPEiX.pm
-inc/Devel/AssertOS/MSDOS.pm
-inc/Devel/AssertOS/MSWin32.pm
-inc/Devel/AssertOS/NetBSD.pm
-inc/Devel/AssertOS/Netware.pm
-inc/Devel/AssertOS/NeXT.pm
-inc/Devel/AssertOS/OpenBSD.pm
-inc/Devel/AssertOS/OS2.pm
-inc/Devel/AssertOS/OS390.pm
-inc/Devel/AssertOS/OS400.pm
-inc/Devel/AssertOS/OSF.pm
-inc/Devel/AssertOS/POSIXBC.pm
-inc/Devel/AssertOS/RISCOS.pm
-inc/Devel/AssertOS/SCO.pm
-inc/Devel/AssertOS/Solaris.pm
-inc/Devel/AssertOS/Sun.pm
-inc/Devel/AssertOS/SunOS.pm
-inc/Devel/AssertOS/SysVr4.pm
-inc/Devel/AssertOS/SysVr5.pm
-inc/Devel/AssertOS/Unicos.pm
-inc/Devel/AssertOS/Unix.pm
-inc/Devel/AssertOS/VMESA.pm
-inc/Devel/AssertOS/VMS.pm
-inc/Devel/AssertOS/VOS.pm
-inc/Devel/CheckOS.pm
-inc/Perl/Critic/BuildUtilities.pm
-INSTALL
-lib/Perl/Critic.pm
-lib/Perl/Critic/Config.pm
-lib/Perl/Critic/DEVELOPER.pod
-lib/Perl/Critic/Document.pm
-lib/Perl/Critic/Exception.pm
-lib/Perl/Critic/Exception/AggregateConfiguration.pm
-lib/Perl/Critic/Exception/Configuration.pm
-lib/Perl/Critic/Exception/Configuration/Generic.pm
-lib/Perl/Critic/Exception/Configuration/Option.pm
-lib/Perl/Critic/Exception/Configuration/Option/Global.pm
-lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm
-lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm
-lib/Perl/Critic/Exception/Configuration/Option/Policy.pm
-lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm
-lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm
-lib/Perl/Critic/Exception/Fatal.pm
-lib/Perl/Critic/Exception/Fatal/Generic.pm
-lib/Perl/Critic/Exception/Fatal/Internal.pm
-lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm
-lib/Perl/Critic/Exception/IO.pm
-lib/Perl/Critic/OptionsProcessor.pm
-lib/Perl/Critic/Policy.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm
-lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm
-lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm
-lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm
-lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm
-lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm
-lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm
-lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm
-lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm
-lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm
-lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm
-lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm
-lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm
-lib/Perl/Critic/Policy/Documentation/PodSpelling.pm
-lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm
-lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm
-lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm
-lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm
-lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm
-lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm
-lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm
-lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm
-lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm
-lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm
-lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm
-lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm
-lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm
-lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm
-lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm
-lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm
-lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm
-lib/Perl/Critic/Policy/Miscellanea/ProhibitTies.pm
-lib/Perl/Critic/Policy/Miscellanea/RequireRcsKeywords.pm
-lib/Perl/Critic/Policy/Modules/ProhibitAutomaticExportation.pm
-lib/Perl/Critic/Policy/Modules/ProhibitEvilModules.pm
-lib/Perl/Critic/Policy/Modules/ProhibitExcessMainComplexity.pm
-lib/Perl/Critic/Policy/Modules/ProhibitMultiplePackages.pm
-lib/Perl/Critic/Policy/Modules/RequireBarewordIncludes.pm
-lib/Perl/Critic/Policy/Modules/RequireEndWithOne.pm
-lib/Perl/Critic/Policy/Modules/RequireExplicitPackage.pm
-lib/Perl/Critic/Policy/Modules/RequireFilenameMatchesPackage.pm
-lib/Perl/Critic/Policy/Modules/RequireNoMatchVarsWithUseEnglish.pm
-lib/Perl/Critic/Policy/Modules/RequireVersionVar.pm
-lib/Perl/Critic/Policy/NamingConventions/ProhibitAmbiguousNames.pm
-lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseSubs.pm
-lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseVars.pm
-lib/Perl/Critic/Policy/References/ProhibitDoubleSigils.pm
-lib/Perl/Critic/Policy/RegularExpressions/ProhibitCaptureWithoutTest.pm
-lib/Perl/Critic/Policy/RegularExpressions/ProhibitComplexRegexes.pm
-lib/Perl/Critic/Policy/RegularExpressions/ProhibitEnumeratedClasses.pm
-lib/Perl/Critic/Policy/RegularExpressions/ProhibitEscapedMetacharacters.pm
-lib/Perl/Critic/Policy/RegularExpressions/ProhibitFixedStringMatches.pm
-lib/Perl/Critic/Policy/RegularExpressions/ProhibitSingleCharAlternation.pm
-lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusedCapture.pm
-lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusualDelimiters.pm
-lib/Perl/Critic/Policy/RegularExpressions/RequireBracesForMultiline.pm
-lib/Perl/Critic/Policy/RegularExpressions/RequireExtendedFormatting.pm
-lib/Perl/Critic/Policy/RegularExpressions/RequireLineBoundaryMatching.pm
-lib/Perl/Critic/Policy/Subroutines/ProhibitAmpersandSigils.pm
-lib/Perl/Critic/Policy/Subroutines/ProhibitBuiltinHomonyms.pm
-lib/Perl/Critic/Policy/Subroutines/ProhibitExcessComplexity.pm
-lib/Perl/Critic/Policy/Subroutines/ProhibitExplicitReturnUndef.pm
-lib/Perl/Critic/Policy/Subroutines/ProhibitManyArgs.pm
-lib/Perl/Critic/Policy/Subroutines/ProhibitNestedSubs.pm
-lib/Perl/Critic/Policy/Subroutines/ProhibitSubroutinePrototypes.pm
-lib/Perl/Critic/Policy/Subroutines/ProtectPrivateSubs.pm
-lib/Perl/Critic/Policy/Subroutines/RequireArgUnpacking.pm
-lib/Perl/Critic/Policy/Subroutines/RequireFinalReturn.pm
-lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoStrict.pm
-lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoWarnings.pm
-lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitProlongedStrictureOverride.pm
-lib/Perl/Critic/Policy/TestingAndDebugging/RequireTestLabels.pm
-lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseStrict.pm
-lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseWarnings.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitCommaSeparatedStatements.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitConstantPragma.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEmptyQuotes.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEscapedCharacters.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitImplicitNewlines.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitInterpolationOfLiterals.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLeadingZeros.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLongChainsOfMethodCalls.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMagicNumbers.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMismatchedOperators.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMixedBooleanOperators.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitNoisyQuotes.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitQuotesAsQuotelikeOperatorDelimiters.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitVersionStrings.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/RequireInterpolationOfMetachars.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/RequireNumberSeparators.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/RequireQuotedHeredocTerminator.pm
-lib/Perl/Critic/Policy/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.pm
-lib/Perl/Critic/Policy/Variables/ProhibitConditionalDeclarations.pm
-lib/Perl/Critic/Policy/Variables/ProhibitLocalVars.pm
-lib/Perl/Critic/Policy/Variables/ProhibitMatchVars.pm
-lib/Perl/Critic/Policy/Variables/ProhibitPackageVars.pm
-lib/Perl/Critic/Policy/Variables/ProhibitPerl4PackageNames.pm
-lib/Perl/Critic/Policy/Variables/ProhibitPunctuationVars.pm
-lib/Perl/Critic/Policy/Variables/ProtectPrivateVars.pm
-lib/Perl/Critic/Policy/Variables/RequireInitializationForLocalVars.pm
-lib/Perl/Critic/Policy/Variables/RequireLexicalLoopIterators.pm
-lib/Perl/Critic/Policy/Variables/RequireLocalizedPunctuationVars.pm
-lib/Perl/Critic/Policy/Variables/RequireNegativeIndices.pm
-lib/Perl/Critic/PolicyConfig.pm
-lib/Perl/Critic/PolicyFactory.pm
-lib/Perl/Critic/PolicyListing.pm
-lib/Perl/Critic/PolicyParameter.pm
-lib/Perl/Critic/PolicyParameter/Behavior.pm
-lib/Perl/Critic/PolicyParameter/Behavior/Boolean.pm
-lib/Perl/Critic/PolicyParameter/Behavior/Enumeration.pm
-lib/Perl/Critic/PolicyParameter/Behavior/Integer.pm
-lib/Perl/Critic/PolicyParameter/Behavior/String.pm
-lib/Perl/Critic/PolicyParameter/Behavior/StringList.pm
-lib/Perl/Critic/PolicySummary.pod.PL
-lib/Perl/Critic/ProfilePrototype.pm
-lib/Perl/Critic/Statistics.pm
-lib/Perl/Critic/TestUtils.pm
-lib/Perl/Critic/Theme.pm
-lib/Perl/Critic/ThemeListing.pm
-lib/Perl/Critic/UserProfile.pm
-lib/Perl/Critic/Utils.pm
-lib/Perl/Critic/Utils/Constants.pm
-lib/Perl/Critic/Utils/DataConversion.pm
-lib/Perl/Critic/Utils/McCabe.pm
-lib/Perl/Critic/Utils/POD.pm
-lib/Perl/Critic/Utils/PPI.pm
-lib/Perl/Critic/Utils/PPIRegexp.pm
-lib/Perl/Critic/Violation.pm
-LICENSE
-Makefile.PL
-MANIFEST This list of files
-META.yml
-README
-t/00_modules.t
-t/01_bad_perlcriticrc
-t/01_config.t
-t/01_config_bad_perlcriticrc.t
-t/01_policy_config.t
-t/02_policy.t
-t/03_pragmas.t
-t/04_optionsprocessor.t
-t/05_utils.t
-t/05_utils_pod.t
-t/05_utils_ppi.t
-t/06_violation.t
-t/07_perlcritic.t
-t/08_document.t
-t/09_theme.t
-t/10_userprofile.t
-t/11_policyfactory.t
-t/12_policylisting.t
-t/12_themelisting.t
-t/13_bundled_policies.t
-t/14_policy_parameter_behavior_boolean.t
-t/14_policy_parameter_behavior_enumeration.t
-t/14_policy_parameter_behavior_integer.t
-t/14_policy_parameter_behavior_list_string.t
-t/14_policy_parameter_behavior_string.t
-t/14_policy_parameters.t
-t/15_statistics.t
-t/16_roundtrip_defaults.t
-t/20_policies.t
-t/20_policy_podspelling.t
-t/20_policy_prohibithardtabs.t
-t/20_policy_prohibittrailingwhitespace.t
-t/20_policy_requireconsistentnewlines.t
-t/20_policy_requiretidycode.t
-t/92_memory_leaks.t
-t/98_pod_syntax.t
-t/99_pod_coverage.t
-t/BuiltinFunctions/ProhibitBooleanGrep.run
-t/BuiltinFunctions/ProhibitComplexMappings.run
-t/BuiltinFunctions/ProhibitLvalueSubstr.run
-t/BuiltinFunctions/ProhibitReverseSortBlock.run
-t/BuiltinFunctions/ProhibitSleepViaSelect.run
-t/BuiltinFunctions/ProhibitStringyEval.run
-t/BuiltinFunctions/ProhibitStringySplit.run
-t/BuiltinFunctions/ProhibitUniversalCan.run
-t/BuiltinFunctions/ProhibitUniversalIsa.run
-t/BuiltinFunctions/ProhibitVoidGrep.run
-t/BuiltinFunctions/ProhibitVoidMap.run
-t/BuiltinFunctions/RequireBlockGrep.run
-t/BuiltinFunctions/RequireBlockMap.run
-t/BuiltinFunctions/RequireGlobFunction.run
-t/BuiltinFunctions/RequireSimpleSortBlock.run
-t/ClassHierarchies/ProhibitAutoloading.run
-t/ClassHierarchies/ProhibitExplicitISA.run
-t/ClassHierarchies/ProhibitOneArgBless.run
-t/CodeLayout/ProhibitParensWithBuiltins.run
-t/CodeLayout/ProhibitQuotedWordLists.run
-t/CodeLayout/RequireTrailingCommas.run
-t/ControlStructures/ProhibitCascadingIfElse.run
-t/ControlStructures/ProhibitCStyleForLoops.run
-t/ControlStructures/ProhibitDeepNests.run
-t/ControlStructures/ProhibitLabelsWithSpecialBlockNames.run
-t/ControlStructures/ProhibitMutatingListFunctions.run
-t/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.run.PL
-t/ControlStructures/ProhibitPostfixControls.run
-t/ControlStructures/ProhibitUnlessBlocks.run
-t/ControlStructures/ProhibitUnreachableCode.run
-t/ControlStructures/ProhibitUntilBlocks.run
-t/Documentation/RequirePodAtEnd.run
-t/Documentation/RequirePodSections.run
-t/ErrorHandling/RequireCarping.run
-t/generate_without_optional_dependencies_wrappers.PL
-t/InputOutput/ProhibitBacktickOperators.run
-t/InputOutput/ProhibitBarewordFileHandles.run
-t/InputOutput/ProhibitExplicitStdin.run
-t/InputOutput/ProhibitInteractiveTest.run
-t/InputOutput/ProhibitJoinedReadline.run
-t/InputOutput/ProhibitOneArgSelect.run
-t/InputOutput/ProhibitReadlineInForLoop.run
-t/InputOutput/ProhibitTwoArgOpen.run
-t/InputOutput/RequireBracedFileHandleWithPrint.run
-t/InputOutput/RequireBriefOpen.run
-t/InputOutput/RequireCheckedClose.run
-t/InputOutput/RequireCheckedOpen.run
-t/InputOutput/RequireCheckedSyscalls.run
-t/Miscellanea/ProhibitFormats.run
-t/Miscellanea/ProhibitTies.run
-t/Miscellanea/RequireRcsKeywords.run
-t/Modules/ProhibitAutomaticExportation.run
-t/Modules/ProhibitEvilModules.run
-t/Modules/ProhibitExcessMainComplexity.run
-t/Modules/ProhibitMultiplePackages.run
-t/Modules/RequireBarewordIncludes.run
-t/Modules/RequireEndWithOne.run
-t/Modules/RequireExplicitPackage.run
-t/Modules/RequireFilenameMatchesPackage.run
-t/Modules/RequireNoMatchVarsWithUseEnglish.run
-t/Modules/RequireVersionVar.run
-t/NamingConventions/ProhibitAmbiguousNames.run
-t/NamingConventions/ProhibitMixedCaseSubs.run
-t/NamingConventions/ProhibitMixedCaseVars.run
-t/References/ProhibitDoubleSigils.run
-t/RegularExpressions/ProhibitCaptureWithoutTest.run
-t/RegularExpressions/ProhibitComplexRegexes.run
-t/RegularExpressions/ProhibitEnumeratedClasses.run
-t/RegularExpressions/ProhibitEscapedMetacharacters.run
-t/RegularExpressions/ProhibitFixedStringMatches.run
-t/RegularExpressions/ProhibitSingleCharAlternation.run
-t/RegularExpressions/ProhibitUnusedCapture.run
-t/RegularExpressions/ProhibitUnusualDelimiters.run
-t/RegularExpressions/RequireBracesForMultiline.run
-t/RegularExpressions/RequireExtendedFormatting.run
-t/RegularExpressions/RequireLineBoundaryMatching.run
-t/Subroutines/ProhibitAmpersandSigils.run
-t/Subroutines/ProhibitBuiltinHomonyms.run
-t/Subroutines/ProhibitExcessComplexity.run
-t/Subroutines/ProhibitExplicitReturnUndef.run
-t/Subroutines/ProhibitManyArgs.run
-t/Subroutines/ProhibitNestedSubs.run
-t/Subroutines/ProhibitSubroutinePrototypes.run
-t/Subroutines/ProtectPrivateSubs.run
-t/Subroutines/RequireArgUnpacking.run
-t/Subroutines/RequireFinalReturn.run
-t/TestingAndDebugging/ProhibitNoStrict.run
-t/TestingAndDebugging/ProhibitNoWarnings.run
-t/TestingAndDebugging/ProhibitProlongedStrictureOverride.run
-t/TestingAndDebugging/RequireTestLabels.run
-t/TestingAndDebugging/RequireUseStrict.run
-t/TestingAndDebugging/RequireUseWarnings.run
-t/tlib/Perl/Critic/Policy/Test.pm
-t/tlib/Perl/Critic/TestUtilitiesWithMinimalDependencies.pm
-t/tlib/ViolationTest.pm
-t/tlib/ViolationTest2.pm
-t/ValuesAndExpressions/ProhibitCommaSeparatedStatements.run
-t/ValuesAndExpressions/ProhibitConstantPragma.run
-t/ValuesAndExpressions/ProhibitEmptyQuotes.run
-t/ValuesAndExpressions/ProhibitEscapedCharacters.run
-t/ValuesAndExpressions/ProhibitImplicitNewlines.run
-t/ValuesAndExpressions/ProhibitInterpolationOfLiterals.run
-t/ValuesAndExpressions/ProhibitLeadingZeros.run
-t/ValuesAndExpressions/ProhibitLongChainsOfMethodCalls.run
-t/ValuesAndExpressions/ProhibitMagicNumbers.run
-t/ValuesAndExpressions/ProhibitMismatchedOperators.run
-t/ValuesAndExpressions/ProhibitMixedBooleanOperators.run
-t/ValuesAndExpressions/ProhibitNoisyQuotes.run
-t/ValuesAndExpressions/ProhibitQuotesAsQuotelikeOperatorDelimiters.run
-t/ValuesAndExpressions/ProhibitVersionStrings.run
-t/ValuesAndExpressions/RequireInterpolationOfMetachars.run
-t/ValuesAndExpressions/RequireNumberSeparators.run
-t/ValuesAndExpressions/RequireQuotedHeredocTerminator.run
-t/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.run
-t/Variables/ProhibitConditionalDeclarations.run
-t/Variables/ProhibitLocalVars.run
-t/Variables/ProhibitMatchVars.run
-t/Variables/ProhibitPackageVars.run
-t/Variables/ProhibitPerl4PackageNames.run
-t/Variables/ProhibitPunctuationVars.run
-t/Variables/ProtectPrivateVars.run
-t/Variables/RequireInitializationForLocalVars.run
-t/Variables/RequireLexicalLoopIterators.run
-t/Variables/RequireLocalizedPunctuationVars.run.PL
-t/Variables/RequireNegativeIndices.run
-TODO.pod
-tools/ppidump
-tools/svnkeywords
-xt/author/40_criticize-code.t
-xt/author/40_perlcriticrc-code
-xt/author/41_criticize-policies.t
-xt/author/41_perlcriticrc-policies
-xt/author/80_policysummary.t
-xt/author/93_version.t
-xt/author/94_includes.t
-xt/author/95_kwalitee.t
+++ /dev/null
----
-name: Perl-Critic
-version: 1.083_003
-author:
- - 'Jeffrey Thalhammer <thaljef@cpan.org>'
-abstract: Critique Perl source code for best-practices.
-license: perl
-resources:
- MailingList: http://perlcritic.tigris.org/servlets/SummarizeList?listName=users
- Repository: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/
- homepage: http://perlcritic.com
- license: http://dev.perl.org/licenses/
-requires:
- B::Keywords: 1.05
- Carp: 0
- Config::Tiny: 2
- English: 0
- Exception::Class: 1.23
- File::Basename: 0
- File::Find: 0
- File::Path: 0
- File::Spec: 0
- File::Spec::Unix: 0
- File::Temp: 0
- Getopt::Long: 0
- IO::String: 0
- List::MoreUtils: 0
- List::Util: 0
- Module::Pluggable: 3.1
- PPI: 1.203
- PPI::Document: 1.203
- PPI::Document::File: 1.203
- PPI::Node: 1.203
- PPI::Token::Quote::Single: 1.203
- PPI::Token::Whitespace: 1.203
- Pod::PlainText: 0
- Pod::Select: 0
- Pod::Usage: 0
- Readonly: 1.03
- Scalar::Util: 0
- String::Format: 1.13
- base: 0
- charnames: 0
- overload: 0
- strict: 0
- version: 0
- warnings: 0
-build_requires:
- Test::More: 0
- lib: 0
-recommends:
- File::HomeDir: 0
- File::Which: 0
- IPC::Open2: 1
- Perl::Tidy: 0
- Pod::Spell: 1
- Regexp::Parser: 0.20
- Text::ParseWords: 3
-provides:
- Perl::Critic:
- file: lib/Perl/Critic.pm
- version: 1.083_003
- Perl::Critic::Config:
- file: lib/Perl/Critic/Config.pm
- version: 1.083_003
- Perl::Critic::Document:
- file: lib/Perl/Critic/Document.pm
- version: 1.083_003
- Perl::Critic::Exception:
- file: lib/Perl/Critic/Exception.pm
- version: 1.083_003
- Perl::Critic::Exception::AggregateConfiguration:
- file: lib/Perl/Critic/Exception/AggregateConfiguration.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration:
- file: lib/Perl/Critic/Exception/Configuration.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration::Generic:
- file: lib/Perl/Critic/Exception/Configuration/Generic.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration::Option:
- file: lib/Perl/Critic/Exception/Configuration/Option.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration::Option::Global:
- file: lib/Perl/Critic/Exception/Configuration/Option/Global.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter:
- file: lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration::Option::Global::ParameterValue:
- file: lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration::Option::Policy:
- file: lib/Perl/Critic/Exception/Configuration/Option/Policy.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter:
- file: lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm
- version: 1.083_003
- Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue:
- file: lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm
- version: 1.083_003
- Perl::Critic::Exception::Fatal:
- file: lib/Perl/Critic/Exception/Fatal.pm
- version: 1.083_003
- Perl::Critic::Exception::Fatal::Generic:
- file: lib/Perl/Critic/Exception/Fatal/Generic.pm
- version: 1.083_003
- Perl::Critic::Exception::Fatal::Internal:
- file: lib/Perl/Critic/Exception/Fatal/Internal.pm
- version: 1.083_003
- Perl::Critic::Exception::Fatal::PolicyDefinition:
- file: lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm
- version: 1.083_003
- Perl::Critic::Exception::IO:
- file: lib/Perl/Critic/Exception/IO.pm
- version: 1.083_003
- Perl::Critic::OptionsProcessor:
- file: lib/Perl/Critic/OptionsProcessor.pm
- version: 1.083_003
- Perl::Critic::Policy:
- file: lib/Perl/Critic/Policy.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitComplexMappings:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitReverseSortBlock:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm
- version: 1.083_003
- Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock:
- file: lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm
- version: 1.083_003
- Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading:
- file: lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm
- version: 1.083_003
- Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA:
- file: lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm
- version: 1.083_003
- Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless:
- file: lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm
- version: 1.083_003
- Perl::Critic::Policy::CodeLayout::ProhibitHardTabs:
- file: lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm
- version: 1.083_003
- Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins:
- file: lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm
- version: 1.083_003
- Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists:
- file: lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm
- version: 1.083_003
- Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace:
- file: lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm
- version: 1.083_003
- Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines:
- file: lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm
- version: 1.083_003
- Perl::Critic::Policy::CodeLayout::RequireTidyCode:
- file: lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm
- version: 1.083_003
- Perl::Critic::Policy::CodeLayout::RequireTrailingCommas:
- file: lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitDeepNests:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm
- version: 1.083_003
- Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks:
- file: lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm
- version: 1.083_003
- Perl::Critic::Policy::Documentation::PodSpelling:
- file: lib/Perl/Critic/Policy/Documentation/PodSpelling.pm
- version: 1.083_003
- Perl::Critic::Policy::Documentation::RequirePodAtEnd:
- file: lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm
- version: 1.083_003
- Perl::Critic::Policy::Documentation::RequirePodSections:
- file: lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm
- version: 1.083_003
- Perl::Critic::Policy::ErrorHandling::RequireCarping:
- file: lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators:
- file: lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles:
- file: lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin:
- file: lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest:
- file: lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline:
- file: lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect:
- file: lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop:
- file: lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen:
- file: lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint:
- file: lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::RequireBriefOpen:
- file: lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::RequireCheckedClose:
- file: lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::RequireCheckedOpen:
- file: lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm
- version: 1.083_003
- Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls:
- file: lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm
- version: 1.083_003
- Perl::Critic::Policy::Miscellanea::ProhibitFormats:
- file: lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm
- version: 1.083_003
- Perl::Critic::Policy::Miscellanea::ProhibitTies:
- file: lib/Perl/Critic/Policy/Miscellanea/ProhibitTies.pm
- version: 1.083_003
- Perl::Critic::Policy::Miscellanea::RequireRcsKeywords:
- file: lib/Perl/Critic/Policy/Miscellanea/RequireRcsKeywords.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::ProhibitAutomaticExportation:
- file: lib/Perl/Critic/Policy/Modules/ProhibitAutomaticExportation.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::ProhibitEvilModules:
- file: lib/Perl/Critic/Policy/Modules/ProhibitEvilModules.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::ProhibitExcessMainComplexity:
- file: lib/Perl/Critic/Policy/Modules/ProhibitExcessMainComplexity.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::ProhibitMultiplePackages:
- file: lib/Perl/Critic/Policy/Modules/ProhibitMultiplePackages.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::RequireBarewordIncludes:
- file: lib/Perl/Critic/Policy/Modules/RequireBarewordIncludes.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::RequireEndWithOne:
- file: lib/Perl/Critic/Policy/Modules/RequireEndWithOne.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::RequireExplicitPackage:
- file: lib/Perl/Critic/Policy/Modules/RequireExplicitPackage.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage:
- file: lib/Perl/Critic/Policy/Modules/RequireFilenameMatchesPackage.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish:
- file: lib/Perl/Critic/Policy/Modules/RequireNoMatchVarsWithUseEnglish.pm
- version: 1.083_003
- Perl::Critic::Policy::Modules::RequireVersionVar:
- file: lib/Perl/Critic/Policy/Modules/RequireVersionVar.pm
- version: 1.083_003
- Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames:
- file: lib/Perl/Critic/Policy/NamingConventions/ProhibitAmbiguousNames.pm
- version: 1.083_003
- Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseSubs:
- file: lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseSubs.pm
- version: 1.083_003
- Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars:
- file: lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseVars.pm
- version: 1.083_003
- Perl::Critic::Policy::References::ProhibitDoubleSigils:
- file: lib/Perl/Critic/Policy/References/ProhibitDoubleSigils.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::ProhibitCaptureWithoutTest:
- file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitCaptureWithoutTest.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::ProhibitComplexRegexes:
- file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitComplexRegexes.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::ProhibitEnumeratedClasses:
- file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitEnumeratedClasses.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::ProhibitEscapedMetacharacters:
- file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitEscapedMetacharacters.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches:
- file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitFixedStringMatches.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::ProhibitSingleCharAlternation:
- file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitSingleCharAlternation.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::ProhibitUnusedCapture:
- file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusedCapture.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::ProhibitUnusualDelimiters:
- file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusualDelimiters.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::RequireBracesForMultiline:
- file: lib/Perl/Critic/Policy/RegularExpressions/RequireBracesForMultiline.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::RequireExtendedFormatting:
- file: lib/Perl/Critic/Policy/RegularExpressions/RequireExtendedFormatting.pm
- version: 1.083_003
- Perl::Critic::Policy::RegularExpressions::RequireLineBoundaryMatching:
- file: lib/Perl/Critic/Policy/RegularExpressions/RequireLineBoundaryMatching.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::ProhibitAmpersandSigils:
- file: lib/Perl/Critic/Policy/Subroutines/ProhibitAmpersandSigils.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::ProhibitBuiltinHomonyms:
- file: lib/Perl/Critic/Policy/Subroutines/ProhibitBuiltinHomonyms.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::ProhibitExcessComplexity:
- file: lib/Perl/Critic/Policy/Subroutines/ProhibitExcessComplexity.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef:
- file: lib/Perl/Critic/Policy/Subroutines/ProhibitExplicitReturnUndef.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::ProhibitManyArgs:
- file: lib/Perl/Critic/Policy/Subroutines/ProhibitManyArgs.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::ProhibitNestedSubs:
- file: lib/Perl/Critic/Policy/Subroutines/ProhibitNestedSubs.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::ProhibitSubroutinePrototypes:
- file: lib/Perl/Critic/Policy/Subroutines/ProhibitSubroutinePrototypes.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::ProtectPrivateSubs:
- file: lib/Perl/Critic/Policy/Subroutines/ProtectPrivateSubs.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::RequireArgUnpacking:
- file: lib/Perl/Critic/Policy/Subroutines/RequireArgUnpacking.pm
- version: 1.083_003
- Perl::Critic::Policy::Subroutines::RequireFinalReturn:
- file: lib/Perl/Critic/Policy/Subroutines/RequireFinalReturn.pm
- version: 1.083_003
- Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict:
- file: lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoStrict.pm
- version: 1.083_003
- Perl::Critic::Policy::TestingAndDebugging::ProhibitNoWarnings:
- file: lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoWarnings.pm
- version: 1.083_003
- Perl::Critic::Policy::TestingAndDebugging::ProhibitProlongedStrictureOverride:
- file: lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitProlongedStrictureOverride.pm
- version: 1.083_003
- Perl::Critic::Policy::TestingAndDebugging::RequireTestLabels:
- file: lib/Perl/Critic/Policy/TestingAndDebugging/RequireTestLabels.pm
- version: 1.083_003
- Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict:
- file: lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseStrict.pm
- version: 1.083_003
- Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings:
- file: lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseWarnings.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitCommaSeparatedStatements:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitCommaSeparatedStatements.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitConstantPragma:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitConstantPragma.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyQuotes:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEmptyQuotes.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitEscapedCharacters:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEscapedCharacters.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitImplicitNewlines:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitImplicitNewlines.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitInterpolationOfLiterals.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLeadingZeros.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitLongChainsOfMethodCalls:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLongChainsOfMethodCalls.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMagicNumbers.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitMismatchedOperators:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMismatchedOperators.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMixedBooleanOperators.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitNoisyQuotes:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitNoisyQuotes.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitQuotesAsQuotelikeOperatorDelimiters.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::ProhibitVersionStrings:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitVersionStrings.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/RequireInterpolationOfMetachars.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::RequireNumberSeparators:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/RequireNumberSeparators.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::RequireQuotedHeredocTerminator:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/RequireQuotedHeredocTerminator.pm
- version: 1.083_003
- Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator:
- file: lib/Perl/Critic/Policy/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::ProhibitConditionalDeclarations:
- file: lib/Perl/Critic/Policy/Variables/ProhibitConditionalDeclarations.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::ProhibitLocalVars:
- file: lib/Perl/Critic/Policy/Variables/ProhibitLocalVars.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::ProhibitMatchVars:
- file: lib/Perl/Critic/Policy/Variables/ProhibitMatchVars.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::ProhibitPackageVars:
- file: lib/Perl/Critic/Policy/Variables/ProhibitPackageVars.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::ProhibitPerl4PackageNames:
- file: lib/Perl/Critic/Policy/Variables/ProhibitPerl4PackageNames.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::ProhibitPunctuationVars:
- file: lib/Perl/Critic/Policy/Variables/ProhibitPunctuationVars.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::ProtectPrivateVars:
- file: lib/Perl/Critic/Policy/Variables/ProtectPrivateVars.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::RequireInitializationForLocalVars:
- file: lib/Perl/Critic/Policy/Variables/RequireInitializationForLocalVars.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::RequireLexicalLoopIterators:
- file: lib/Perl/Critic/Policy/Variables/RequireLexicalLoopIterators.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::RequireLocalizedPunctuationVars:
- file: lib/Perl/Critic/Policy/Variables/RequireLocalizedPunctuationVars.pm
- version: 1.083_003
- Perl::Critic::Policy::Variables::RequireNegativeIndices:
- file: lib/Perl/Critic/Policy/Variables/RequireNegativeIndices.pm
- version: 1.083_003
- Perl::Critic::PolicyConfig:
- file: lib/Perl/Critic/PolicyConfig.pm
- version: 1.083_003
- Perl::Critic::PolicyFactory:
- file: lib/Perl/Critic/PolicyFactory.pm
- version: 1.083_003
- Perl::Critic::PolicyListing:
- file: lib/Perl/Critic/PolicyListing.pm
- version: 1.083_003
- Perl::Critic::PolicyParameter:
- file: lib/Perl/Critic/PolicyParameter.pm
- version: 1.083_003
- Perl::Critic::PolicyParameter::Behavior:
- file: lib/Perl/Critic/PolicyParameter/Behavior.pm
- version: 1.083_003
- Perl::Critic::PolicyParameter::Behavior::Boolean:
- file: lib/Perl/Critic/PolicyParameter/Behavior/Boolean.pm
- version: 1.083_003
- Perl::Critic::PolicyParameter::Behavior::Enumeration:
- file: lib/Perl/Critic/PolicyParameter/Behavior/Enumeration.pm
- version: 1.083_003
- Perl::Critic::PolicyParameter::Behavior::Integer:
- file: lib/Perl/Critic/PolicyParameter/Behavior/Integer.pm
- version: 1.083_003
- Perl::Critic::PolicyParameter::Behavior::String:
- file: lib/Perl/Critic/PolicyParameter/Behavior/String.pm
- version: 1.083_003
- Perl::Critic::PolicyParameter::Behavior::StringList:
- file: lib/Perl/Critic/PolicyParameter/Behavior/StringList.pm
- version: 1.083_003
- Perl::Critic::ProfilePrototype:
- file: lib/Perl/Critic/ProfilePrototype.pm
- version: 1.083_003
- Perl::Critic::Statistics:
- file: lib/Perl/Critic/Statistics.pm
- version: 1.083_003
- Perl::Critic::TestUtils:
- file: lib/Perl/Critic/TestUtils.pm
- version: 1.083_003
- Perl::Critic::Theme:
- file: lib/Perl/Critic/Theme.pm
- version: 1.083_003
- Perl::Critic::ThemeListing:
- file: lib/Perl/Critic/ThemeListing.pm
- version: 1.083_003
- Perl::Critic::UserProfile:
- file: lib/Perl/Critic/UserProfile.pm
- version: 1.083_003
- Perl::Critic::Utils:
- file: lib/Perl/Critic/Utils.pm
- version: 1.083_003
- Perl::Critic::Utils::Constants:
- file: lib/Perl/Critic/Utils/Constants.pm
- version: 1.083_003
- Perl::Critic::Utils::DataConversion:
- file: lib/Perl/Critic/Utils/DataConversion.pm
- version: 1.083_003
- Perl::Critic::Utils::McCabe:
- file: lib/Perl/Critic/Utils/McCabe.pm
- version: 1.083_003
- Perl::Critic::Utils::POD:
- file: lib/Perl/Critic/Utils/POD.pm
- version: 1.083_003
- Perl::Critic::Utils::PPI:
- file: lib/Perl/Critic/Utils/PPI.pm
- version: 1.083_003
- Perl::Critic::Utils::PPIRegexp:
- file: lib/Perl/Critic/Utils/PPIRegexp.pm
- version: 1.083_003
- Perl::Critic::Violation:
- file: lib/Perl/Critic/Violation.pm
- version: 1.083_003
-generated_by: Module::Build version 0.280801
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.2.html
- version: 1.2
+++ /dev/null
-NAME
- Perl::Critic - Critique Perl source code for best-practices.
-
-SYNOPSIS
- use Perl::Critic;
- my $file = shift;
- my $critic = Perl::Critic->new();
- my @violations = $critic->critique($file);
- print @violations;
-
-DESCRIPTION
- Perl::Critic is an extensible framework for creating and applying coding
- standards to Perl source code. Essentially, it is a static source code
- analysis engine. Perl::Critic is distributed with a number of
- Perl::Critic::Policy modules that attempt to enforce various coding
- guidelines. Most Policy modules are based on Damian Conway's book Perl
- Best Practices. However, Perl::Critic is not limited to PBP and will
- even support Policies that contradict Conway. You can enable, disable,
- and customize those Polices through the Perl::Critic interface. You can
- also create new Policy modules that suit your own tastes.
-
- For a command-line interface to Perl::Critic, see the documentation for
- perlcritic. If you want to integrate Perl::Critic with your build
- process, Test::Perl::Critic provides an interface that is suitable for
- test scripts. Also, Test::Perl::Critic::Progressive is useful for
- gradually applying coding standards to legacy code. For the ultimate
- convenience (at the expense of some flexibility) see the criticism
- pragma.
-
- Win32 and ActivePerl users can find PPM distributions of Perl::Critic at
- <http://theoryx5.uwinnipeg.ca/ppms/>.
-
- If you'd like to try Perl::Critic without installing anything, there is
- a web-service available at <http://perlcritic.com>. The web-service does
- not yet support all the configuration features that are available in the
- native Perl::Critic API, but it should give you a good idea of what it
- does. You can also invoke the perlcritic web-service from the
- command-line by doing an HTTP-post, such as one of these:
-
- $> POST http://perlcritic.com/perl/critic.pl < MyModule.pm
- $> lwp-request -m POST http://perlcritic.com/perl/critic.pl < MyModule.pm
- $> wget -q -O - --post-file=MyModule.pm http://perlcritic.com/perl/critic.pl
-
- Please note that the perlcritic web-service is still alpha code. The URL
- and interface to the service are subject to change.
-
-CONSTRUCTOR
- "new( [ -profile => $FILE, -severity => $N, -theme => $string, -include
- => \@PATTERNS, -exclude => \@PATTERNS, -top => $N, -only => $B,
- -profile-strictness => $PROFILE_STRICTNESS_{WARN|FATAL|QUIET}, -force =>
- $B, -verbose => $N ], -color => $B, -criticism-fatal => $B)"
- "new( -config => Perl::Critic::Config->new() )"
- "new()"
- Returns a reference to a new Perl::Critic object. Most arguments are
- just passed directly into Perl::Critic::Config, but I have described
- them here as well. The default value for all arguments can be
- defined in your .perlcriticrc file. See the "CONFIGURATION" section
- for more information about that. All arguments are optional
- key-value pairs as follows:
-
- -profile is a path to a configuration file. If $FILE is not defined,
- Perl::Critic::Config attempts to find a .perlcriticrc configuration
- file in the current directory, and then in your home directory.
- Alternatively, you can set the "PERLCRITIC" environment variable to
- point to a file in another location. If a configuration file can't
- be found, or if $FILE is an empty string, then all Policies will be
- loaded with their default configuration. See "CONFIGURATION" for
- more information.
-
- -severity is the minimum severity level. Only Policy modules that
- have a severity greater than $N will be applied. Severity values are
- integers ranging from 1 (least severe) to 5 (most severe). The
- default is 5. For a given "-profile", decreasing the "-severity"
- will usually reveal more Policy violations. You can set the default
- value for this option in your .perlcriticrc file. Users can redefine
- the severity level for any Policy in their .perlcriticrc file. See
- "CONFIGURATION" for more information.
-
- If it is difficult for you to remember whether severity "5" is the
- most or least restrictive level, then you can use one of these named
- values:
-
- SEVERITY NAME ...is equivalent to... SEVERITY NUMBER
- --------------------------------------------------------
- -severity => 'gentle' -severity => 5
- -severity => 'stern' -severity => 4
- -severity => 'harsh' -severity => 3
- -severity => 'cruel' -severity => 2
- -severity => 'brutal' -severity => 1
-
- -theme is special expression that determines which Policies to apply
- based on their respective themes. For example, the following would
- load only Policies that have a 'bugs' AND 'pbp' theme:
-
- my $critic = Perl::Critic->new( -theme => 'bugs && pbp' );
-
- Unless the "-severity" option is explicitly given, setting "-theme"
- silently causes the "-severity" to be set to 1. You can set the
- default value for this option in your .perlcriticrc file. See the
- "POLICY THEMES" section for more information about themes.
-
- -include is a reference to a list of string @PATTERNS. Policy
- modules that match at least one "m/$PATTERN/imx" will always be
- loaded, irrespective of all other settings. For example:
-
- my $critic = Perl::Critic->new(-include => ['layout'] -severity => 4);
-
- This would cause Perl::Critic to apply all the "CodeLayout::*"
- Policy modules even though they have a severity level that is less
- than 4. You can set the default value for this option in your
- .perlcriticrc file. You can also use "-include" in conjunction with
- the "-exclude" option. Note that "-exclude" takes precedence over
- "-include" when a Policy matches both patterns.
-
- -exclude is a reference to a list of string @PATTERNS. Policy
- modules that match at least one "m/$PATTERN/imx" will not be loaded,
- irrespective of all other settings. For example:
-
- my $critic = Perl::Critic->new(-exclude => ['strict'] -severity => 1);
-
- This would cause Perl::Critic to not apply the "RequireUseStrict"
- and "ProhibitNoStrict" Policy modules even though they have a
- severity level that is greater than 1. You can set the default value
- for this option in your .perlcriticrc file. You can also use
- "-exclude" in conjunction with the "-include" option. Note that
- "-exclude" takes precedence over "-include" when a Policy matches
- both patterns.
-
- -single-policy is a string "PATTERN". Only one policy that matches
- "m/$PATTERN/imx" will be used. Policies that do not match will be
- excluded. This option has precedence over the "-severity", "-theme",
- "-include", "-exclude", and "-only" options. You can set the default
- value for this option in your .perlcriticrc file.
-
- -top is the maximum number of Violations to return when ranked by
- their severity levels. This must be a positive integer. Violations
- are still returned in the order that they occur within the file.
- Unless the "-severity" option is explicitly given, setting "-top"
- silently causes the "-severity" to be set to 1. You can set the
- default value for this option in your .perlcriticrc file.
-
- -only is a boolean value. If set to a true value, Perl::Critic will
- only choose from Policies that are mentioned in the user's profile.
- If set to a false value (which is the default), then Perl::Critic
- chooses from all the Policies that it finds at your site. You can
- set the default value for this option in your .perlcriticrc file.
-
- -profile-strictness is an enumerated value, one of
- "$PROFILE_STRICTNESS_WARN" in Perl::Critic::Utils::Constants (the
- default), "$PROFILE_STRICTNESS_FATAL" in
- Perl::Critic::Utils::Constants, and "$PROFILE_STRICTNESS_QUIET" in
- Perl::Critic::Utils::Constants. If set to
- "$PROFILE_STRICTNESS_FATAL" in Perl::Critic::Utils::Constants,
- Perl::Critic will make certain warnings about problems found in a
- .perlcriticrc or file specified via the -profile option fatal. For
- example, Perl::Critic normally only "warn"s about profiles referring
- to non-existent Policies, but this value makes this situation fatal.
- Correspondingly, "$PROFILE_STRICTNESS_QUIET" in
- Perl::Critic::Utils::Constants makes Perl::Critic shut up about
- these things.
-
- -force is a boolean value that controls whether Perl::Critic
- observes the magical "## no critic" pseudo-pragmas in your code. If
- set to a true value, Perl::Critic will analyze all code. If set to a
- false value (which is the default) Perl::Critic will ignore code
- that is tagged with these comments. See "BENDING THE RULES" for more
- information. You can set the default value for this option in your
- .perlcriticrc file.
-
- -verbose can be a positive integer (from 1 to 11), or a literal
- format specification. See Perl::Critic::Violation for an explanation
- of format specifications. You can set the default value for this
- option in your .perlcriticrc file.
-
- -color is not used by Perl::Critic but is provided for the benefit
- of perlcritic.
-
- -criticism-fatal is not used by Perl::Critic but is provided for the
- benefit of criticism.
-
- -config is a reference to a Perl::Critic::Config object. If you have
- created your own Config object for some reason, you can pass it in
- here instead of having Perl::Critic create one for you. Using the
- "-config" option causes all the other options to be silently
- ignored.
-
-METHODS
- "critique( $source_code )"
- Runs the $source_code through the Perl::Critic engine using all the
- Policies that have been loaded into this engine. If $source_code is
- a scalar reference, then it is treated as a string of actual Perl
- code. If $source_code is a reference to an instance of
- PPI::Document, then that instance is used directly. Otherwise, it is
- treated as a path to a local file containing Perl code. This method
- returns a list of Perl::Critic::Violation objects for each violation
- of the loaded Policies. The list is sorted in the order that the
- Violations appear in the code. If there are no violations, this
- method returns an empty list.
-
- "add_policy( -policy => $policy_name, -params => \%param_hash )"
- Creates a Policy object and loads it into this Critic. If the object
- cannot be instantiated, it will throw a fatal exception. Otherwise,
- it returns a reference to this Critic.
-
- -policy is the name of a Perl::Critic::Policy subclass module. The
- 'Perl::Critic::Policy' portion of the name can be omitted for
- brevity. This argument is required.
-
- -params is an optional reference to a hash of Policy parameters. The
- contents of this hash reference will be passed into to the
- constructor of the Policy module. See the documentation in the
- relevant Policy module for a description of the arguments it
- supports.
-
- " policies() "
- Returns a list containing references to all the Policy objects that
- have been loaded into this engine. Objects will be in the order that
- they were loaded.
-
- " config() "
- Returns the Perl::Critic::Config object that was created for or
- given to this Critic.
-
- " statistics() "
- Returns the Perl::Critic::Statistics object that was created for
- this Critic. The Statistics object accumulates data for all files
- that are analyzed by this Critic.
-
-FUNCTIONAL INTERFACE
- For those folks who prefer to have a functional interface, The
- "critique" method can be exported on request and called as a static
- function. If the first argument is a hashref, its contents are used to
- construct a new Perl::Critic object internally. The keys of that hash
- should be the same as those supported by the "Perl::Critic::new" method.
- Here are some examples:
-
- use Perl::Critic qw(critique);
-
- # Use default parameters...
- @violations = critique( $some_file );
-
- # Use custom parameters...
- @violations = critique( {-severity => 2}, $some_file );
-
- # As a one-liner
- %> perl -MPerl::Critic=critique -e 'print critique(shift)' some_file.pm
-
- None of the other object-methods are currently supported as static
- functions. Sorry.
-
-CONFIGURATION
- Most of the settings for Perl::Critic and each of the Policy modules can
- be controlled by a configuration file. The default configuration file is
- called .perlcriticrc. Perl::Critic will look for this file in the
- current directory first, and then in your home directory. Alternatively,
- you can set the "PERLCRITIC" environment variable to explicitly point to
- a different file in another location. If none of these files exist, and
- the "-profile" option is not given to the constructor, then all the
- modules that are found in the Perl::Critic::Policy namespace will be
- loaded with their default configuration.
-
- The format of the configuration file is a series of INI-style blocks
- that contain key-value pairs separated by '='. Comments should start
- with '#' and can be placed on a separate line or after the name-value
- pairs if you desire.
-
- Default settings for Perl::Critic itself can be set before the first
- named block. For example, putting any or all of these at the top of your
- configuration file will set the default value for the corresponding
- constructor argument.
-
- severity = 3 #Integer or named level
- only = 1 #Zero or One
- force = 0 #Zero or One
- verbose = 4 #Integer or format spec
- top = 50 #A positive integer
- theme = (pbp || security) && bugs #A theme expression
- include = NamingConventions ClassHierarchies #Space-delimited list
- exclude = Variables Modules::RequirePackage #Space-delimited list
- criticism-fatal = 1 #Zero or One
- color = 1 #Zero or One
-
- The remainder of the configuration file is a series of blocks like this:
-
- [Perl::Critic::Policy::Category::PolicyName]
- severity = 1
- set_themes = foo bar
- add_themes = baz
- maximum_violations_per_document = 57
- arg1 = value1
- arg2 = value2
-
- "Perl::Critic::Policy::Category::PolicyName" is the full name of a
- module that implements the policy. The Policy modules distributed with
- Perl::Critic have been grouped into categories according to the table of
- contents in Damian Conway's book Perl Best Practices. For brevity, you
- can omit the 'Perl::Critic::Policy' part of the module name.
-
- "severity" is the level of importance you wish to assign to the Policy.
- All Policy modules are defined with a default severity value ranging
- from 1 (least severe) to 5 (most severe). However, you may disagree with
- the default severity and choose to give it a higher or lower severity,
- based on your own coding philosophy. You can set the "severity" to an
- integer from 1 to 5, or use one of the equivalent names:
-
- SEVERITY NAME ...is equivalent to... SEVERITY NUMBER
- ----------------------------------------------------
- gentle 5
- stern 4
- harsh 3
- cruel 2
- brutal 1
-
- "set_themes" sets the theme for the Policy and overrides its default
- theme. The argument is a string of one or more whitespace-delimited
- alphanumeric words. Themes are case-insensitive. See "POLICY THEMES" for
- more information.
-
- "add_themes" appends to the default themes for this Policy. The argument
- is a string of one or more whitespace-delimited words. Themes are
- case-insensitive. See "POLICY THEMES" for more information.
-
- "maximum_violations_per_document" limits the number of Violations the
- Policy will return for a given document. Some Policies have a default
- limit; see the documentation for the individual Policies to see whether
- there is one. To force a Policy to not have a limit, specify "no_limit"
- or the empty string for the value of this parameter.
-
- The remaining key-value pairs are configuration parameters that will be
- passed into the constructor for that Policy. The constructors for most
- Policy objects do not support arguments, and those that do should have
- reasonable defaults. See the documentation on the appropriate Policy
- module for more details.
-
- Instead of redefining the severity for a given Policy, you can
- completely disable a Policy by prepending a '-' to the name of the
- module in your configuration file. In this manner, the Policy will never
- be loaded, regardless of the "-severity" given to the Perl::Critic
- constructor.
-
- A simple configuration might look like this:
-
- #--------------------------------------------------------------
- # I think these are really important, so always load them
-
- [TestingAndDebugging::RequireUseStrict]
- severity = 5
-
- [TestingAndDebugging::RequireUseWarnings]
- severity = 5
-
- #--------------------------------------------------------------
- # I think these are less important, so only load when asked
-
- [Variables::ProhibitPackageVars]
- severity = 2
-
- [ControlStructures::ProhibitPostfixControls]
- allow = if unless # My custom configuration
- severity = cruel # Same as "severity = 2"
-
- #--------------------------------------------------------------
- # Give these policies a custom theme. I can activate just
- # these policies by saying `perlcritic -theme larry`
-
- [Modules::RequireFilenameMatchesPackage]
- add_themes = larry
-
- [TestingAndDebugging::RequireTestLables]
- add_themes = larry curly moe
-
- #--------------------------------------------------------------
- # I do not agree with these at all, so never load them
-
- [-NamingConventions::ProhibitMixedCaseVars]
- [-NamingConventions::ProhibitMixedCaseSubs]
-
- #--------------------------------------------------------------
- # For all other Policies, I accept the default severity,
- # so no additional configuration is required for them.
-
- For additional configuration examples, see the perlcriticrc file that is
- included in this examples directory of this distribution.
-
- Damian Conway's own Perl::Critic configuration is also included in this
- distribution as examples/perlcriticrc-conway.
-
-THE POLICIES
- A large number of Policy modules are distributed with Perl::Critic. They
- are described briefly in the companion document
- Perl::Critic::PolicySummary and in more detail in the individual modules
- themselves. Say ""perlcritic -doc PATTERN"" to see the perldoc for all
- Policy modules that match the regex "m/PATTERN/imx"
-
- There are a number of distributions of additional policies on CPAN. If
- Perl::Critic doesn't contain a policy that you want, some one may have
- already written it. See the "SEE ALSO" section below for a list of some
- of these distributions.
-
-POLICY THEMES
- Each Policy is defined with one or more "themes". Themes can be used to
- create arbitrary groups of Policies. They are intended to provide an
- alternative mechanism for selecting your preferred set of Policies. For
- example, you may wish disable a certain subset of Policies when
- analyzing test scripts. Conversely, you may wish to enable only a
- specific subset of Policies when analyzing modules.
-
- The Policies that ship with Perl::Critic are have been broken into the
- following themes. This is just our attempt to provide some basic logical
- groupings. You are free to invent new themes that suit your needs.
-
- THEME DESCRIPTION
- --------------------------------------------------------------------------
- core All policies that ship with Perl::Critic
- pbp Policies that come directly from "Perl Best Practices"
- bugs Policies that that prevent or reveal bugs
- maintenance Policies that affect the long-term health of the code
- cosmetic Policies that only have a superficial effect
- complexity Policies that specificaly relate to code complexity
- security Policies that relate to security issues
- tests Policies that are specific to test scripts
-
- Any Policy may fit into multiple themes. Say "perlcritic -list" to get a
- listing of all available Policies and the themes that are associated
- with each one. You can also change the theme for any Policy in your
- .perlcriticrc file. See the "CONFIGURATION" section for more information
- about that.
-
- Using the "-theme" option, you can create an arbitrarily complex rule
- that determines which Policies will be loaded. Precedence is the same as
- regular Perl code, and you can use parentheses to enforce precedence as
- well. Supported operators are:
-
- Operator Altertative Example
- ----------------------------------------------------------------------------
- && and 'pbp && core'
- || or 'pbp || (bugs && security)'
- ! not 'pbp && ! (portability || complexity)'
-
- Theme names are case-insensitive. If the "-theme" is set to an empty
- string, then it evaluates as true all Policies.
-
-BENDING THE RULES
- Perl::Critic takes a hard-line approach to your code: either you comply
- or you don't. In the real world, it is not always practical (nor even
- possible) to fully comply with coding standards. In such cases, it is
- wise to show that you are knowingly violating the standards and that you
- have a Damn Good Reason (DGR) for doing so.
-
- To help with those situations, you can direct Perl::Critic to ignore
- certain lines or blocks of code by using pseudo-pragmas:
-
- require 'LegacyLibaray1.pl'; ## no critic
- require 'LegacyLibrary2.pl'; ## no critic
-
- for my $element (@list) {
-
- ## no critic
-
- $foo = ""; #Violates 'ProhibitEmptyQuotes'
- $barf = bar() if $foo; #Violates 'ProhibitPostfixControls'
- #Some more evil code...
-
- ## use critic
-
- #Some good code...
- do_something($_);
- }
-
- The "## no critic" comments direct Perl::Critic to ignore the remaining
- lines of code until the end of the current block, or until a ""## use
- critic"" comment is found (whichever comes first). If the "## no critic"
- comment is on the same line as a code statement, then only that line of
- code is overlooked. To direct perlcritic to ignore the "## no critic"
- comments, use the "-force" option.
-
- A bare "## no critic" comment disables all the active Policies. If you
- wish to disable only specific Policies, add a list of Policy names as
- arguments, just as you would for the "no strict" or "no warnings"
- pragmas. For example, this would disable the "ProhibitEmptyQuotes" and
- "ProhibitPostfixControls" policies until the end of the block or until
- the next "## use critic" comment (whichever comes first):
-
- ## no critic (EmptyQuotes, PostfixControls)
-
- # Now exempt from ValuesAndExpressions::ProhibitEmptyQuotes
- $foo = "";
-
- # Now exempt ControlStructures::ProhibitPostfixControls
- $barf = bar() if $foo;
-
- # Still subjected to ValuesAndExpression::RequireNumberSeparators
- $long_int = 10000000000;
-
- Since the Policy names are matched against the "## no critic" arguments
- as regular expressions, you can abbreviate the Policy names or disable
- an entire family of Policies in one shot like this:
-
- ## no critic (NamingConventions)
-
- # Now exempt from NamingConventions::ProhibitMixedCaseVars
- my $camelHumpVar = 'foo';
-
- # Now exempt from NamingConventions::ProhibitMixedCaseSubs
- sub camelHumpSub {}
-
- The argument list must be enclosed in parentheses and must contain one
- or more comma-separated barewords (e.g. don't use quotes). The "## no
- critic" pragmas can be nested, and Policies named by an inner pragma
- will be disabled along with those already disabled an outer pragma.
-
- Some Policies like "Subroutines::ProhibitExcessComplexity" apply to an
- entire block of code. In those cases, "## no critic" must appear on the
- line where the violation is reported. For example:
-
- sub complicated_function { ## no critic (ProhibitExcessComplexity)
- # Your code here...
- }
-
- Policies such as "Documentation::RequirePodSections" apply to the entire
- document, in which case violations are reported at line 1. But if the
- file requires a shebang line, it is impossible to put "## no critic" on
- the first line of the file. This is a known limitation and it will be
- addressed in a future release. As a workaround, you can disable the
- affected policies at the command-line or in your .perlcriticrc file. But
- beware that this will affect the analysis of all files.
-
- Use this feature wisely. "## no critic" should be used in the smallest
- possible scope, or only on individual lines of code. And you should
- always be as specific as possible about which policies you want to
- disable (i.e. never use a bare "## no critic"). If Perl::Critic
- complains about your code, try and find a compliant solution before
- resorting to this feature.
-
-THE Perl::Critic PHILOSOPHY
- Coding standards are deeply personal and highly subjective. The goal of
- Perl::Critic is to help you write code that conforms with a set of best
- practices. Our primary goal is not to dictate what those practices are,
- but rather, to implement the practices discovered by others. Ultimately,
- you make the rules -- Perl::Critic is merely a tool for encouraging
- consistency. If there is a policy that you think is important or that we
- have overlooked, we would be very grateful for contributions, or you can
- simply load your own private set of policies into Perl::Critic.
-
-EXTENDING THE CRITIC
- The modular design of Perl::Critic is intended to facilitate the
- addition of new Policies. You'll need to have some understanding of PPI,
- but most Policy modules are pretty straightforward and only require
- about 20 lines of code. Please see the Perl::Critic::DEVELOPER file
- included in this distribution for a step-by-step demonstration of how to
- create new Policy modules.
-
- If you develop any new Policy modules, feel free to send them to
- "<thaljef@cpan.org>" and I'll be happy to put them into the Perl::Critic
- distribution. Or if you would like to work on the Perl::Critic project
- directly, check out our repository at <http://perlcritic.tigris.org>. To
- subscribe to our mailing list, send a message to
- "<dev-subscribe@perlcritic.tigris.org>".
-
- The Perl::Critic team is also available for hire. If your organization
- has its own coding standards, we can create custom Policies to enforce
- your local guidelines. Or if your code base is prone to a particular
- defect pattern, we can design Policies that will help you catch those
- costly defects before they go into production. To discuss your needs
- with the Perl::Critic team, just contact "<thaljef@cpan.org>".
-
-PREREQUISITES
- Perl::Critic requires the following modules:
-
- B::Keywords
-
- Config::Tiny
-
- Exception::Class
-
- File::Spec
-
- File::Spec::Unix
-
- IO::String
-
- List::MoreUtils
-
- List::Util
-
- Module::Pluggable
-
- PPI
-
- Pod::PlainText
-
- Pod::Usage
-
- Readonly
-
- Scalar::Util
-
- String::Format
-
- version
-
- The following modules are optional, but recommended for complete
- testing:
-
- File::HomeDir
-
- File::Which
-
- IO::String
-
- IPC::Open2
-
- Perl::Tidy
-
- Pod::Spell
-
- Test::Pod
-
- Test::Pod::Coverage
-
- Text::ParseWords
-
-CONTACTING THE DEVELOPMENT TEAM
- You are encouraged to subscribe to the mailing list; send a message to
- "<users-subscribe@perlcritic.tigris.org>". See also the archives. You
- can also contact the author at "<thaljef@cpan.org>".
-
- At least one member of the development team has started hanging around
- in <irc://irc.perl.org/#perlcritic>.
-
-SEE ALSO
- There are a number of distributions of additional Policies available. A
- few are listed here:
-
- Perl::Critic::More
-
- Perl::Critic::Bangs
-
- Perl::Critic::Lax
-
- Perl::Critic::StricterSubs
-
- Perl::Critic::Swift
-
- Perl::Critic::Tics
-
- These distributions enable you to use Perl::Critic in your unit tests:
-
- Test::Perl::Critic
-
- Test::Perl::Critic::Progressive
-
- There are also a couple of distributions that will install all the
- Perl::Critic related modules known to the development team:
-
- Bundle::Perl::Critic
-
- Task::Perl::Critic
-
- If you want to make sure you have absolutely everything, you can use
- these:
-
- Bundle::Perl::Critic::IncludingOptionalDependencies
-
- Task::Perl::Critic::IncludingOptionalDependencies
-
-BUGS
- Scrutinizing Perl code is hard for humans, let alone machines. If you
- find any bugs, particularly false-positives or false-negatives from a
- Perl::Critic::Policy, please submit them to
- <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Perl-Critic>. Thanks.
-
- Most policies will produce false-negatives if they cannot understand a
- particular block of code.
-
-CREDITS
- Adam Kennedy - For creating PPI, the heart and soul of Perl::Critic.
-
- Damian Conway - For writing Perl Best Practices, finally :)
-
- Chris Dolan - For contributing the best features and Policy modules.
-
- Andy Lester - Wise sage and master of all-things-testing.
-
- Elliot Shank - The self-proclaimed quality freak.
-
- Giuseppe Maxia - For all the great ideas and positive encouragement.
-
- and Sharon, my wife - For putting up with my all-night code sessions.
-
- Thanks also to the Perl Foundation for providing a grant to support
- Chris Dolan's project to implement twenty PBP policies.
- <http://www.perlfoundation.org/april_1_2007_new_grant_awards>
-
-AUTHOR
- Jeffrey Ryan Thalhammer <thaljef@cpan.org>
-
-COPYRIGHT
- Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. 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.
-