manpagez: man pages & more
man Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins(3)
Home | html | info | man
Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins(3)



NAME

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


AFFILIATION

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


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


CONFIGURATION

       This Policy is not configurable except for the standard options.


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.


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.


AUTHOR

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


COPYRIGHT

       Copyright (c) 2005-2011 Imaginative Software Systems.  All rights
       reserved.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.  The full text of this license can
       be found in the LICENSE file included with this module.




perl v5.28.2   Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins(3)

perl-critic 1.134.0 - Generated Mon Jun 3 07:53:59 CDT 2019
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.