# nice output, to easily see the POD of the policy
verbose  = [%p] %m at %f line %l, near '%r'\n

# severity of 3 is a good start (1 is very strict, 5 very tolerant)
severity = 3

# we want to use // without //ms
[-RegularExpressions::RequireDotMatchAnything]
[-RegularExpressions::RequireLineBoundaryMatching]
[-RegularExpressions::RequireExtendedFormatting]
minimum_regex_length_to_complain_about = 5
[-RegularExpressions::ProhibitComplexRegexes]

# we don't want these POD rules
[-Documentation::RequirePodSections]

# We don't care about POD links
[-Documentation::RequirePodLinksIncludeText]

# we use $@ and $!
[-Variables::ProhibitPunctuationVars]

# We want to be able to use Carp::Verbose in our tests scripts, so
# we add Carp to the whitelist
[Variables::ProhibitPackageVars]
#packages = Data::Dumper File::Find FindBin Log::Log4perl Carp

#[-ValuesAndExpressions::ProhibitEmptyQuotes]

# I really don't think q{/} is more readable than '/'...
#[-ValuesAndExpressions::ProhibitNoisyQuotes]

# Perl::Critic recommends Readonly, but this IS BAD!
# we use Const::Fast instead, but this policy keeps poping up.
#[-ValuesAndExpressions::ProhibitMagicNumbers]

# we want to be able to build DSLs
#[-Modules::ProhibitAutomaticExportation]

# We only want the main module to provide $VERSION
[-Modules::RequireVersionVar]

# we want to be able to define short getters
[-Subroutines::RequireFinalReturn]

# we cant do @_ measures with that one
[-Subroutines::RequireArgUnpacking]

# name is a common used name for methods
# but forbidden by this policy ...
#[-Subroutines::ProhibitBuiltinHomonyms]

# some old libs use many args, we don't want to block that for now
#[-Subroutines::ProhibitManyArgs]

# we allow protected subs
#[-Subroutines::ProhibitUnusedPrivateSubroutines]

# We're not under CVS! :)
[-Miscellanea::RequireRcsKeywords]

#[TestingAndDebugging::ProhibitNoStrict]
#allow = refs

[TestingAndDebugging::ProhibitNoWarnings]
allow = redefine prototype

[TestingAndDebugging::RequireUseStrict]
equivalent_modules = strictures Moo Moo::Role t::lib::Eris::Test

[TestingAndDebugging::RequireUseWarnings]
equivalent_modules = strictures Moo Moo::Role t::lib::Eris::Test

# we use postifx controls
#[-ControlStructures::ProhibitPostfixControls]
#[-ControlStructures::ProhibitCascadingIfElse]

# We want to use croak everywhere instead of die
#[ErrorHandling::RequireCarping]

# allow backtick if capture result
[InputOutput::ProhibitBacktickOperators]
only_in_void_context = 1

#[-Variables::ProhibitAugmentedAssignmentInDeclaration]
