profile-strictness = fatal
severity = 1
theme = core
verbose = %f: %m at line %l, column %c.  %e.  (Severity: %s, %p)\n

#-----------------------------------------------------------------------------

[BuiltinFunctions::ProhibitStringyEval]
allow_includes = 1

[CodeLayout::ProhibitHardTabs]
allow_leading_tabs = 0

[CodeLayout::ProhibitQuotedWordLists]
strict = 1

[-CodeLayout::RequireTidyCode]

[-ControlStructures::ProhibitCascadingIfElse]

[Documentation::PodSpelling]
spell_command = aspell list -l en_US
stop_words_file = xt/40_stop_words

[Documentation::RequirePodSections]
lib_sections    = NAME|DESCRIPTION|AUTHOR|COPYRIGHT
script_sections = NAME|DESCRIPTION|AUTHOR|COPYRIGHT

# Wrapping Exception constructor calls across lines runs into 9 lines too quickly.
[InputOutput::RequireBriefOpen]
lines = 20

[InputOutput::RequireCheckedSyscalls]
functions = open close

[-Miscellanea::ProhibitUselessNoCritic]
# With Perl 5.32, isa() becomes a reserved word. This means we need to Subroutines::ProhibitBuiltinHomonyms for it.
# However, for all other Perls, that causes a Miscellanea::ProhibitUselessNoCritic to fire.

[Modules::ProhibitEvilModules]
# List::MoreUtils isn't evil. We just have standardized on List::SomeUtils for Perl::Critic itself.
modules = List::MoreUtils

[RegularExpressions::ProhibitUnusualDelimiters]
allow_all_brackets = 1

[RegularExpressions::RequireBracesForMultiline]
allow_all_brackets = 1

[Subroutines::ProhibitUnusedPrivateSubroutines]
private_name_regex = _(?!_)\w+
allow = _get_behavior_values _get_description_with_trailing_period

[Subroutines::ProtectPrivateSubs]
private_name_regex = _(?!_)\w+
