The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse

DESCRIPTION

Long if-elsif chains are hard to digest, especially if they are longer than a single page or screen. If testing for equality, use a hash-lookup instead. See Switch for another approach.

  if ($condition1) {         #ok
      $foo = 1;
  }
  elseif ($condition2) {     #ok
      $foo = 2;
  }
  elsif ($condition3) {      #too many!
      $foo = 3;
  }
  else{                      #ok
      $foo = $default;
  }

CONSTRUCTOR

This policy accepts an additional key-value pair in the new method. The key should be 'max' and the value should be an integer indicating the maximum number of elsif alternatives to allow. The default is 1. When using the Perl::Critic engine, these can be configured in the .perlcriticrc file like this:

 [ControlStructures::ProhibitCascadingIfElse]
 max_elsif = 3

AUTHOR

Jeffrey Ryan Thalhammer <thaljef@cpan.org>

Copyright (c) 2005 Jeffrey Ryan Thalhammer. 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.