Documenting a follow-up discussion in the chat room...
LedgerSMB coding guidelines state that calling "die" is the preferred
way to signal an error. We can't stop die()ing, because that's how our
error handling is implemented.
Consequently, we cannot implement the CERT recommended policy
Error
To summarise discussion about Perl::Critic policy
ProhibitExplicitReturnUndef...
Matt Trout raised an issue that this policy leads to surprising
behaviour when a function is used in a hash assignment. This has lead to
security issues in other projects.
As an example conside the following code: