Modules
Additional Perl::Critic policies.
Write lc($x // "Default") instead of lc $x // "Default".
Use subroutines instead of inline do-blocks.
Write is_arrayref($var) instead of ref($var) eq 'ARRAY'.
Use basic arrays and hashes.
Only use dereferencing arrows for method calls; use sigils to signal types.
If a return statement is needed anywhere, all returns should be explicit.
Place subroutines in dependency order
Use array and hash slices for multiple lookups
Use concise variable and subroutine names.
Use named loop control variables.