
severity = 5
verbose  = 3

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

# REF: https://metacpan.org/pod/Perl::Critic::Policy::Documentation::RequirePodSections
[Documentation::RequirePodSections]
lib_sections    = NAME|DESCRIPTION|SYNOPSIS|AUTHORS|COPYRIGHT
script_sections = NAME|DESCRIPTION|SYNOPSIS|AUTHORS|COPYRIGHT

# REF: https://metacpan.org/pod/Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings
[TestingAndDebugging::RequireUseWarnings]

# REF: https://metacpan.org/pod/Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers
[ValuesAndExpressions::ProhibitMagicNumbers]
allowed_values = 0 1 2 3 4 5 6

# Might be to late to address, so it is disabled at various places in the code, could perhaps be 
# revisited with a major release, since it would break backwards compatibility, the recommeded 
# solution is bare return
# REF: https://metacpan.org/pod/Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef
#
# The reverse policy also exists:
#
# https://metacpan.org/pod/Perl::Critic::Policy::Community::EmptyReturn
#
# vetted by a wide audience of Perl community; see the metacpan url and the commit where this
# comment was added for why this policy should not be enabled in general
#
[-Subroutines::ProhibitExplicitReturnUndef]

# The violater of this is an overwrite for Class::Accessor
# REF: https://metacpan.org/pod/Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames
[-NamingConventions::ProhibitAmbiguousNames]

# We are using Constants
# Perhaps exchange this for Readonly?
# REF: https://metacpan.org/pod/Perl::Critic::Policy::ValuesAndExpressions::ProhibitConstantPragma
[-ValuesAndExpressions::ProhibitConstantPragma]

# We currently utilize a package variable deliberately, should be addressed again
# REF: https://metacpan.org/pod/Perl::Critic::Policy::Variables::ProhibitPackageVars
[-Variables::ProhibitPackageVars]

# For embedded SQL this is perfectly ok
# REF: https://metacpan.org/pod/Perl::Critic::Policy::ValuesAndExpressions::ProhibitImplicitNewlines
[ValuesAndExpressions::ProhibitImplicitNewlines]

# Exchange for Module::Load or Module::Runtime?
# REF: https://metacpan.org/pod/Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval
[-BuiltinFunctions::ProhibitStringyEval]

# We use log
# REF: https://metacpan.org/pod/Perl::Critic::Policy::Subroutines::ProhibitBuiltinHomonyms
[-Subroutines::ProhibitBuiltinHomonyms]

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

# TODO

# REF: https://metacpan.org/pod/Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict
[-TestingAndDebugging::ProhibitNoStrict]

# REF: https://metacpan.org/pod/Perl::Critic::Policy::TestingAndDebugging::ProhibitProlongedStrictureOverride
[-TestingAndDebugging::ProhibitProlongedStrictureOverride]

# REF: https://metacpan.org/pod/Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles
[-InputOutput::ProhibitBarewordFileHandles]

# REF: https://metacpan.org/pod/Perl::Critic::Policy::Subroutines::RequireFinalReturn
[-Subroutines::RequireFinalReturn]

# REF: https://metacpan.org/pod/Perl::Critic::Policy::Subroutines::RequireArgUnpacking
[-Subroutines::RequireArgUnpacking]

# REF: https://metacpan.org/pod/Perl::Critic::Policy::InputOutput::RequireBriefOpen
[-InputOutput::RequireBriefOpen]

# REF: https://metacpan.org/pod/Perl::Critic::Policy::ValuesAndExpressions::ProhibitCommaSeparatedStatements
[-ValuesAndExpressions::ProhibitCommaSeparatedStatements]
