# Disable all default policies
only = 1

# We either violate or we dont
severity = 1

# Bespoke output format
verbose = \n---\nViolation: %m\nFile: %f\nLocation: line %l column %c\nNear: %r\nExplanation: %e\nPolicy: %p\nLink: https://metacpan.org/pod/%P\nDiagnostic:\n%d\n---\n

# Alphabetical order please
[Bangs::ProhibitBitwiseOperators]
[Bangs::ProhibitCommentedOutCode]
[Bangs::ProhibitDebuggingModules]
[Bangs::ProhibitFlagComments]
[Bangs::ProhibitVagueNames]
[BuiltinFunctions::ProhibitBooleanGrep]
[BuiltinFunctions::ProhibitComplexMappings]
max_statements = 3
[BuiltinFunctions::ProhibitDeleteOnArrays]
[BuiltinFunctions::ProhibitForeach]
[BuiltinFunctions::ProhibitLvalueSubstr]
[BuiltinFunctions::ProhibitShiftRef]
[BuiltinFunctions::ProhibitSleepViaSelect]
[BuiltinFunctions::ProhibitStringyEval]
[BuiltinFunctions::ProhibitStringySplit]
[BuiltinFunctions::ProhibitUselessTopic]
[BuiltinFunctions::ProhibitUniversalCan]
[BuiltinFunctions::ProhibitUniversalIsa]
[BuiltinFunctions::ProhibitVoidGrep]
[BuiltinFunctions::ProhibitVoidMap]
[BuiltinFunctions::RequireBlockGrep]
[BuiltinFunctions::RequireBlockMap]
[BuiltinFunctions::RequireGlobFunction]
[ClassHierarchies::ProhibitAutoloading]
[ClassHierarchies::ProhibitExplicitISA]
[ClassHierarchies::ProhibitOneArgBless]
[CodeLayout::ProhibitFatCommaNewline]
[CodeLayout::ProhibitHardTabs]
allow_leading_tabs = 0
[CodeLayout::ProhibitIfIfSameLine]
[CodeLayout::ProhibitQuotedWordLists]
[CodeLayout::ProhibitTrailingWhitespace]
[CodeLayout::RequireASCII]
[CodeLayout::RequireConsistentNewlines]
[CodeLayout::RequireFinalSemicolon]
[CodeLayout::RequireTrailingCommaAtNewline]
except_function_calls = 1
[Community::AmpersandSubCalls]
[Community::BarewordFilehandles]
[Community::ConditionalImplicitReturn]
[Community::DeprecatedFeatures]
[Community::DollarAB]
[Community::Each]
[Community::IndirectObjectNotation]
[Community::MultidimensionalArrayEmulation]
[Community::OpenArgs]
[Community::PackageMatchesFilename]
[Community::Prototypes]
[Community::Threads]
[Community::Wantarray]
[Community::WarningsSwitch]
[Community::WhileDiamondDefaultAssignment]
[ControlStructures::ProhibitCascadingIfElse]
[ControlStructures::ProhibitCStyleForLoops]
[ControlStructures::ProhibitDeepNests]
max_nests = 7
[ControlStructures::ProhibitInlineDo]
[ControlStructures::ProhibitLabelsWithSpecialBlockNames]
[ControlStructures::ProhibitMutatingListFunctions]
[ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions]
[ControlStructures::ProhibitReturnInDoBlock]
[ControlStructures::ProhibitReturnInMappingBlock]
[ControlStructures::ProhibitUnlessBlocks]
[ControlStructures::ProhibitUnreachableCode]
[ControlStructures::ProhibitUntilBlocks]
[ControlStructures::ProhibitYadaOperator]
[ErrorHandling::RequireCarping]
[ErrorHandling::RequireCheckingReturnValueOfEval]
[InputOutput::ProhibitBacktickOperators]
[InputOutput::ProhibitBarewordDirHandles]
[InputOutput::ProhibitBarewordFileHandles]
[InputOutput::ProhibitHighPrecedentLogicalOperatorErrorHandling]
[InputOutput::ProhibitInteractiveTest]
[InputOutput::ProhibitJoinedReadline]
[InputOutput::ProhibitOneArgSelect]
[InputOutput::ProhibitReadlineInForLoop]
[InputOutput::ProhibitTwoArgOpen]
[InputOutput::RequireBriefOpen]
[InputOutput::RequireCheckedClose]
[InputOutput::RequireCheckedOpen]
[InputOutput::RequireCheckedSyscalls]
[InputOutput::RequireEncodingWithUTF8Layer]
[Miscellanea::ProhibitFormats]
[Miscellanea::ProhibitTies]
[Miscellanea::ProhibitUnrestrictedNoCritic]
[Miscellanea::ProhibitUselessNoCritic]
[Modules::PerlMinimumVersion]
version = 5.024
[Modules::ProhibitAutomaticExportation]
[Modules::ProhibitConditionalUseStatements]
[Modules::ProhibitExcessMainComplexity]
[ProhibitImplicitImport]
ignored_modules = namespace::clean
[Modules::ProhibitModuleShebang]
[Modules::ProhibitMultiplePackages]
[Modules::ProhibitPOSIXimport]
[Modules::ProhibitUseQuotedVersion]
[Modules::RequireBarewordIncludes]
[Modules::RequireEndWithOne]
[Modules::RequireExplicitInclusion]
ignore_modules = /Crypt::OpenSSL::CA::/
[Modules::RequireFilenameMatchesPackage]
[NamingConventions::Capitalization]
[NamingConventions::ProhibitAmbiguousNames]
[Objects::ProhibitIndirectSyntax]
[Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish]
[Perlsecret]
allow_secrets = Bang Bang, Venus
[Plicease::ProhibitSignaturesAndAtUnderscore]
[References::ProhibitDoubleSigils]
[References::ProhibitRefChecks]
[RegularExpressions::ProhibitCaptureWithoutTest]
[RegularExpressions::ProhibitEmptyAlternatives]
[RegularExpressions::ProhibitEscapedMetacharacters]
[RegularExpressions::ProhibitFixedStringMatches]
[RegularExpressions::ProhibitUnusedCapture]
[RegularExpressions::ProhibitUnusualDelimiters]
[RegularExpressions::ProhibitUselessTopic]
[Subroutines::ProhibitAmbiguousFunctionCalls]
[Subroutines::ProhibitAmpersandSigils]
[Subroutines::ProhibitBuiltinHomonyms]
[Subroutines::ProhibitCallsToUndeclaredSubs]
[Subroutines::ProhibitExplicitReturnUndef]
[Subroutines::ProhibitExportingUndeclaredSubs]
[Subroutines::ProhibitManyArgs]
max_arguments = 5
skip_object = 1
[Subroutines::ProhibitNestedSubs]
[Subroutines::ProhibitQualifiedSubDeclarations]
[Subroutines::ProhibitReturnSort]
[Subroutines::ProhibitUnusedPrivateSubroutines]
[Subroutines::ProtectPrivateSubs]
[Subroutines::RequireArgUnpacking]
[Subroutines::RequireFinalReturn]
[TestingAndDebugging::ProhibitNoStrict]
[TestingAndDebugging::ProhibitNoWarnings]
allow = portable
[TestingAndDebugging::ProhibitProlongedStrictureOverride]
[TestingAndDebugging::RequireTestLabels]
[TestingAndDebugging::RequireUseStrict]
[TestingAndDebugging::RequireUseWarnings]
equivalent_modules = strictures
[Tics::ProhibitManyArrows]
[TooMuchCode::ProhibitDuplicateSub]
[TooMuchCode::ProhibitExcessiveColons]
[TooMuchCode::ProhibitExtraStricture]
[TooMuchCode::ProhibitLargeTryBlock]
[TooMuchCode::ProhibitLargeBlock]
[TooMuchCode::ProhibitUnnecessaryUTF8Pragma]
[TooMuchCode::ProhibitUnusedConstant]
[TooMuchCode::ProhibitUnusedImport]
[TooMuchCode::ProhibitUnusedInclude]
[ValuesAndExpressions::NotWithCompare]
[ValuesAndExpressions::ProhibitArrayAssignAref]
[ValuesAndExpressions::ProhibitBarewordDoubleColon]
[ValuesAndExpressions::ProhibitCommaSeparatedStatements]
[ValuesAndExpressions::ProhibitComplexVersion]
[ValuesAndExpressions::ProhibitDuplicateHashKeys]
[ValuesAndExpressions::ProhibitEmptyCommas]
[ValuesAndExpressions::ProhibitEmptyQuotes]
[ValuesAndExpressions::ProhibitEmptyPostfixLoop]
[ValuesAndExpressions::ProhibitEscapedCharacters]
[ValuesAndExpressions::ProhibitImplicitNewlines]
[ValuesAndExpressions::ProhibitInterpolationOfLiterals]
[ValuesAndExpressions::ProhibitLeadingZeros]
[ValuesAndExpressions::ProhibitLongChainsOfMethodCalls]
[ValuesAndExpressions::ProhibitMixedBooleanOperators]
[ValuesAndExpressions::ProhibitMismatchedOperators]
[ValuesAndExpressions::ProhibitNoisyQuotes]
[ValuesAndExpressions::ProhibitNullStatements]
[ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters]
[ValuesAndExpressions::ProhibitSingleArgArraySlice]
[ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator]
[ValuesAndExpressions::ProhibitUnknownBackslash]
[ValuesAndExpressions::RequireConstantVersion]
[ValuesAndExpressions::RequireInterpolationOfMetachars]
[ValuesAndExpressions::RequireNumberSeparators]
[ValuesAndExpressions::RequireQuotedHeredocTerminator]
[ValuesAndExpressions::RequireUpperCaseHeredocTerminator]
[ValuesAndExpressions::UnexpandedSpecialLiteral]
[Variables::ProhibitAugmentedAssignmentInDeclaration]
[Variables::ProhibitConditionalDeclarations]
[Variables::ProhibitLocalVars]
[Variables::ProhibitUselessInitialization]
[Variables::ProhibitLoopOnHash]
[Variables::ProhibitMatchVars]
[Variables::NameReuse]
[Variables::ProhibitPackageVars]
[Variables::ProhibitPerl4PackageNames]
[Variables::ProhibitPunctuationVars]
allow = $@ $!
[Variables::ProhibitReusedNames]
[Variables::ProhibitTopicIterator]
[Variables::ProhibitUnusedVarsStricter]
allow_unused_subroutine_arguments = 1
[Variables::ProtectPrivateVars]
[Variables::RequireInitializationForLocalVars]
[Variables::RequireLexicalLoopIterators]
[Variables::RequireLocalizedPunctuationVars]
[ValuesAndExpressions::ProhibitMagicNumbers]
[Variables::RequireNegativeIndices]
