Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Perl::Critic::Policy:PUser:ContributediPerlCDocumentationNAME
       Perl::Critic::Policy::CodeLayout::ProhibitIfIfSameLine -	don't put if
       after if	on same	line

DESCRIPTION
       This policy is part of the "Perl::Critic::Pulp" add-on.	It asks	you to
       not to write an "if" statement on the same line as a preceding "if".

	   if ($x) {
	     ...
	   } if	($y) {	     # bad
	     ...
	   }

	   if ($x) {
	     ...
	   } elsif ($y)	{    # was "elsif" intended ?
	     ...
	   }

       The idea	is that	an "if"	in the layout of an "elsif" may	be either a
       mistake or will be confusing to a human reader.	On that	basis this
       policy is under the "bugs" theme	and medium severity (see "POLICY
       THEMES" in Perl::Critic).

   Unless
       An "unless...if"	is treated the same.  Perl allows "unless ... elsif"
       and so the same potential confusion with	an "elsif" layout arises.

	   unless ($x) {
	     ...
	   } if	($y) {	     # bad
	     ...
	   }

	   unless ($x) {
	     ...
	   } elsif ($y)	{    # maybe meant to be "elsif" like this ?
	     ...
	   }

       Whether "unless ... elsif" is a good idea at all	is another matter.
       Sometimes it suits a combination	of conditions.

   Statement Modifiers
       This policy only	applies	to a statement followed	by a statement.	 An
       "if" as a statement modifier is not affected.  It's usual to put	that
       on the same line	as the statement it modifies.

	   do {
	     ...
	   } if	($x);	     # ok, statement modifier

   All One Line
       Two "if"	statements written on the same line will trigger the policy.

	   if(1){one;}	 if(2){two;}	  # bad

       Perhaps there could be an exception or option when both statements are
       entirely	on the one line, or some such, for code	which is trying	to be
       compact.

   Disabling
       As always if you	don't care about this then you can disable
       "ProhibitIfIfSameLine" from your	.perlcriticrc (see "CONFIGURATION" in
       Perl::Critic),

	   [-CodeLayout::ProhibitIfIfSameLine]

SEE ALSO
       Perl::Critic::Pulp, Perl::Critic

       Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse,
       Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks

HOME PAGE
       <http://user42.tuxfamily.org/perl-critic-pulp/index.html>

COPYRIGHT
       Copyright 2013, 2014, 2015, 2016, 2017 Kevin Ryde

       Perl-Critic-Pulp	is free	software; you can redistribute it and/or
       modify it under the terms of the	GNU General Public License as
       published by the	Free Software Foundation; either version 3, or (at
       your option) any	later version.

       Perl-Critic-Pulp	is distributed in the hope that	it will	be useful, but
       WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A	PARTICULAR PURPOSE.  See the GNU
       General Public License for more details.

       You should have received	a copy of the GNU General Public License along
       with Perl-Critic-Pulp.  If not, see <http://www.gnu.org/licenses/>.

perl v5.24.1	     Perl::Critic::Policy::CodeLayout::ProhibitIfIfSameLine(3)

NAME | DESCRIPTION | SEE ALSO | HOME PAGE | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Perl::Critic::Policy::CodeLayout::ProhibitIfIfSameLine&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help