severity            = 1
verbose             = 4
color               = 1
pager               = less -R

###########################
### Perl::Critic (core) ###
###########################

[BuiltinFunctions::ProhibitBooleanGrep]
[BuiltinFunctions::ProhibitComplexMappings]
[BuiltinFunctions::ProhibitLvalueSubstr]
[BuiltinFunctions::ProhibitReverseSortBlock]
[BuiltinFunctions::ProhibitSleepViaSelect]
[BuiltinFunctions::ProhibitStringySplit]
[BuiltinFunctions::ProhibitUniversalCan]
[BuiltinFunctions::ProhibitUniversalIsa]
[BuiltinFunctions::ProhibitVoidGrep]
[BuiltinFunctions::ProhibitVoidMap]
[BuiltinFunctions::RequireBlockGrep]
[BuiltinFunctions::RequireBlockMap]
[BuiltinFunctions::RequireGlobFunction]
[BuiltinFunctions::RequireSimpleSortBlock]

[BuiltinFunctions::ProhibitStringyEval]
allow_includes = 1


[ClassHierarchies::ProhibitAutoloading]
[ClassHierarchies::ProhibitExplicitISA]
[ClassHierarchies::ProhibitOneArgBless]


[CodeLayout::ProhibitHardTabs]
[CodeLayout::ProhibitParensWithBuiltins]
[CodeLayout::ProhibitQuotedWordLists]
[CodeLayout::ProhibitTrailingWhitespace]
[CodeLayout::RequireConsistentNewlines]
[CodeLayout::RequireTrailingCommas]
[CodeLayout::RequireTidyCode]


[ControlStructures::ProhibitCStyleForLoops]
[ControlStructures::ProhibitCascadingIfElse]
[ControlStructures::ProhibitDeepNests]
[ControlStructures::ProhibitLabelsWithSpecialBlockNames]
[ControlStructures::ProhibitMutatingListFunctions]
[ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions]
[ControlStructures::ProhibitUnlessBlocks]
[ControlStructures::ProhibitUnreachableCode]
[ControlStructures::ProhibitUntilBlocks]

[-ControlStructures::ProhibitPostfixControls]


[Documentation::RequirePackageMatchesPodName]
[Documentation::RequirePodAtEnd]
[Documentation::RequirePodLinksIncludeText]
[Documentation::PodSpelling]

[-Documentation::RequirePodSections]


[ErrorHandling::RequireCarping]
[ErrorHandling::RequireCheckingReturnValueOfEval]


[InputOutput::ProhibitBacktickOperators]
[InputOutput::ProhibitBarewordFileHandles]
[InputOutput::ProhibitExplicitStdin]
[InputOutput::ProhibitInteractiveTest]
[InputOutput::ProhibitJoinedReadline]
[InputOutput::ProhibitOneArgSelect]
[InputOutput::ProhibitReadlineInForLoop]
[InputOutput::ProhibitTwoArgOpen]
[InputOutput::RequireBracedFileHandleWithPrint]
[InputOutput::RequireBriefOpen]
[InputOutput::RequireCheckedOpen]
[InputOutput::RequireCheckedSyscalls]
[InputOutput::RequireEncodingWithUTF8Layer]

[-InputOutput::RequireCheckedClose]


[Miscellanea::ProhibitFormats]
[Miscellanea::ProhibitTies]
[Miscellanea::ProhibitUnrestrictedNoCritic]
[Miscellanea::ProhibitUselessNoCritic]


[Modules::ProhibitAutomaticExportation]
[Modules::ProhibitConditionalUseStatements]
[Modules::ProhibitExcessMainComplexity]
[Modules::ProhibitMultiplePackages]
[Modules::RequireBarewordIncludes]
[Modules::RequireEndWithOne]
[Modules::RequireExplicitPackage]
[Modules::RequireFilenameMatchesPackage]
[Modules::RequireNoMatchVarsWithUseEnglish]
[Modules::RequireVersionVar]


[NamingConventions::Capitalization]

[-NamingConventions::ProhibitAmbiguousNames]
#forbid = num string str ret var data


[Objects::ProhibitIndirectSyntax]


[References::ProhibitDoubleSigils]


[RegularExpressions::ProhibitCaptureWithoutTest]
[RegularExpressions::ProhibitComplexRegexes]
[RegularExpressions::ProhibitEnumeratedClasses]
[RegularExpressions::ProhibitEscapedMetacharacters]
[RegularExpressions::ProhibitFixedStringMatches]
[RegularExpressions::ProhibitSingleCharAlternation]
[RegularExpressions::ProhibitUnusedCapture]

[-RegularExpressions::ProhibitUnusualDelimiters]
[-RegularExpressions::RequireBracesForMultiline]
[-RegularExpressions::RequireDotMatchAnything]
[-RegularExpressions::RequireExtendedFormatting]
[-RegularExpressions::RequireLineBoundaryMatching]


[Subroutines::ProhibitAmpersandSigils]
[Subroutines::ProhibitBuiltinHomonyms]
[Subroutines::ProhibitExcessComplexity]
[Subroutines::ProhibitExplicitReturnUndef]
[Subroutines::ProhibitManyArgs]
[Subroutines::ProhibitNestedSubs]
[Subroutines::ProhibitReturnSort]
[Subroutines::ProhibitSubroutinePrototypes]
[Subroutines::ProtectPrivateSubs]
[Subroutines::RequireArgUnpacking]
[Subroutines::RequireFinalReturn]

[Subroutines::ProhibitUnusedPrivateSubroutines]
private_name_regex = _^(build).*

[TestingAndDebugging::ProhibitNoStrict]
[TestingAndDebugging::ProhibitNoWarnings]
[TestingAndDebugging::ProhibitProlongedStrictureOverride]
[TestingAndDebugging::RequireTestLabels]
[TestingAndDebugging::RequireUseStrict]
[TestingAndDebugging::RequireUseWarnings]

[ValuesAndExpressions::ProhibitCommaSeparatedStatements]
[ValuesAndExpressions::ProhibitConstantPragma]
[ValuesAndExpressions::ProhibitEscapedCharacters]
[ValuesAndExpressions::ProhibitImplicitNewlines]
[ValuesAndExpressions::ProhibitInterpolationOfLiterals]
[ValuesAndExpressions::ProhibitLeadingZeros]
[ValuesAndExpressions::ProhibitLongChainsOfMethodCalls]
[ValuesAndExpressions::ProhibitMagicNumbers]
[ValuesAndExpressions::ProhibitMismatchedOperators]
[ValuesAndExpressions::ProhibitMixedBooleanOperators]
[ValuesAndExpressions::ProhibitNoisyQuotes]
[ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters]
[ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator]
[ValuesAndExpressions::ProhibitVersionStrings]
[ValuesAndExpressions::RequireConstantVersion]
[ValuesAndExpressions::RequireInterpolationOfMetachars]
[ValuesAndExpressions::RequireNumberSeparators]
[ValuesAndExpressions::RequireQuotedHeredocTerminator]
[ValuesAndExpressions::RequireUpperCaseHeredocTerminator]

[ValuesAndExpressions::ProhibitComplexVersion]
forbid_use_version = 1

[-ValuesAndExpressions::ProhibitEmptyQuotes]


[Variables::ProhibitAugmentedAssignmentInDeclaration]
[Variables::ProhibitConditionalDeclarations]
[Variables::ProhibitLocalVars]
[Variables::ProhibitPackageVars]
[Variables::ProhibitMatchVars]
[Variables::ProhibitPerl4PackageNames]
[Variables::ProhibitReusedNames]
[Variables::ProhibitUnusedVariables]
[Variables::ProtectPrivateVars]
[Variables::RequireInitializationForLocalVars]
[Variables::RequireLexicalLoopIterators]
[Variables::RequireLocalizedPunctuationVars]
[Variables::RequireNegativeIndices]

[Variables::ProhibitEvilVariables]
variables = $[ $^S

[-Variables::ProhibitPunctuationVars]


##########################
### Perl::Critic::Tics ###
##########################

[Perl::Critic::Policy::Tics::ProhibitUseBase]
[Perl::Critic::Policy::Tics::ProhibitLongLines]

[Perl::Critic::Policy::Tics::ProhibitManyArrows]
max_allowed = 3

##########################
### Perl::Critic::More ###
##########################

[-Editor::RequireEmacsFileVariables]
[-CodeLayout::RequireASCII]
[-ErrorHandling::RequireUseOfExceptions]
[-Modules::PerlMinimumVersion]
[-Modules::RequirePerlVersion]
[-ValuesAndExpressions::RestrictLongStrings]

###########################
### Perl::Critic::Swift ###
###########################

[CodeLayout::RequireUseUTF8]
[Documentation::RequirePODUseEncodingUTF8]

##########################
### Perl::Critic::Itch ###
##########################

[-CodeLayout::ProhibitHashBarewords]

###########################
### Perl::Critic::Bangs ###
###########################

[Perl::Critic::Policy::Bangs::ProhibitCommentedOutCode]
[Perl::Critic::Policy::Bangs::ProhibitFlagComments]
[Perl::Critic::Policy::Bangs::ProhibitNoPlan]
[Perl::Critic::Policy::Bangs::ProhibitNumberedNames]
[Perl::Critic::Policy::Bangs::ProhibitRefProtoOrProto]
[Perl::Critic::Policy::Bangs::ProhibitUselessRegexModifiers]
[Perl::Critic::Policy::Bangs::ProhibitVagueNames]

##########################
### Perl::Critic::Nits ###
##########################
[Perl::Critic::Policy::ValuesAndExpressions::ProhibitAccessOfPrivateData]

##################################
### Perl::Critic::StricterSubs ###
##################################

[Perl::Critic::Policy::Modules::RequireExplicitInclusion]
[Perl::Critic::Policy::Subroutines::ProhibitCallsToUnexportedSubs]
[Perl::Critic::Policy::Subroutines::ProhibitExportingUndeclaredSubs]
[Perl::Critic::Policy::Subroutines::ProhibitQualifiedSubDeclarations]

[Perl::Critic::Policy::Subroutines::ProhibitCallsToUndeclaredSubs]
exempt_subs = Const::Fast::const Moo::has Moo::extends

#########################
### Perl::Critic::Lax ###
#########################

[Perl::Critic::Policy::Lax::ProhibitComplexMappings::LinesNotStatements]
[Perl::Critic::Policy::Lax::ProhibitLeadingZeros::ExceptChmod]
[Perl::Critic::Policy::Lax::ProhibitStringyEval::ExceptForRequire]

[-Perl::Critic::Policy::Lax::ProhibitEmptyQuotes::ExceptAsFallback]
[-Perl::Critic::Policy::Lax::RequireEndWithTrueConst]
[-Perl::Critic::Policy::Lax::RequireExplicitPackage::ExceptForPragmata]

##########################
### Perl::Critic::Pulp ###
##########################

[Perl::Critic::Policy::CodeLayout::RequireFinalSemicolon]
[Perl::Critic::Policy::CodeLayout::RequireTrailingCommaAtNewline]

[Perl::Critic::Policy::Compatibility::ProhibitUnixDevNull]

[Perl::Critic::Policy::Compatibility::PerlMinimumVersionAndWhy]
above_version = 5.016

[Perl::Critic::Policy::Compatibility::PodMinimumVersion]
above_version = 5.016

[-Perl::Critic::Policy::Compatibility::ConstantLeadingUnderscore]
[-Perl::Critic::Policy::Compatibility::ConstantPragmaHash]
[-Perl::Critic::Policy::Compatibility::Gtk2Constants]


[Perl::Critic::Policy::Documentation::ProhibitAdjacentLinks]
[Perl::Critic::Policy::Documentation::ProhibitBadAproposMarkup]
[Perl::Critic::Policy::Documentation::ProhibitDuplicateSeeAlso]
[Perl::Critic::Policy::Documentation::ProhibitLinkToSelf]
[Perl::Critic::Policy::Documentation::ProhibitParagraphTwoDots]
[Perl::Critic::Policy::Documentation::ProhibitUnbalancedParens]
[Perl::Critic::Policy::Documentation::ProhibitVerbatimMarkup]
[Perl::Critic::Policy::Documentation::RequireEndBeforeLastPod]
[Perl::Critic::Policy::Documentation::RequireFinalCut]
[Perl::Critic::Policy::Documentation::RequireLinkedURLs]

[-Perl::Critic::Policy::Miscellanea::TextDomainPlaceholders]
[-Perl::Critic::Policy::Miscellanea::TextDomainUnused]

[Perl::Critic::Policy::Modules::ProhibitModuleShebang]
[Perl::Critic::Policy::Modules::ProhibitPOSIXimport]
[Perl::Critic::Policy::Modules::ProhibitUseQuotedVersion]

[Perl::Critic::Policy::ValuesAndExpressions::ConstantBeforeLt]
[Perl::Critic::Policy::ValuesAndExpressions::NotWithCompare]
[Perl::Critic::Policy::ValuesAndExpressions::ProhibitArrayAssignAref]
[Perl::Critic::Policy::ValuesAndExpressions::ProhibitBarewordDoubleColon]
[Perl::Critic::Policy::ValuesAndExpressions::ProhibitDuplicateHashKeys]
[Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyCommas]
[Perl::Critic::Policy::ValuesAndExpressions::ProhibitFiletest_f]
[Perl::Critic::Policy::ValuesAndExpressions::ProhibitNullStatements]
[Perl::Critic::Policy::ValuesAndExpressions::ProhibitUnknownBackslash]
[Perl::Critic::Policy::ValuesAndExpressions::UnexpandedSpecialLiteral]

[-Perl::Critic::Policy::ValuesAndExpressions::RequireNumericVersion]
