logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins - Write "open $handle, $path" instead of

Affiliation

       This Policy is part of the core Perl::Critic distribution.

Author

       Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>

Bugs

       Some builtin functions (particularly those that take a variable number of scalar arguments) should
       probably get parentheses.  This policy should be enhanced to allow the user to specify a list of builtins
       that are exempt from the policy.

Configuration

       This Policy is not configurable except for the standard options.

Description

       Conway suggests that all built-in functions be called without parentheses around the argument list.  This
       reduces visual clutter and disambiguates built-in functions from user functions.  Exceptions are made for
       "my", "local", and "our" which require parentheses when called with multiple arguments.

           open($handle, '>', $filename); #not ok
           open $handle, '>', $filename;  #ok

           split(/$pattern/, @list); #not ok
           split /$pattern/, @list;  #ok

Name

       Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins - Write "open $handle, $path" instead of
       "open($handle, $path)".

Notes

       Coding with parentheses can sometimes lead to verbose and awkward constructs, so I think the intent of
       Conway's guideline is to remove only the unnecessary parentheses.  This policy makes exceptions for some
       common situations where parentheses are usually required.  However, you may find other situations where
       the parentheses are necessary to enforce precedence, but they cause still violations.  In those cases,
       consider using the '## no critic' comments to silence Perl::Critic.

See Also