Rechercher une page de manuel
Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls.3pm
Langue: en
Version: 2008-03-08 (mandriva - 01/05/08)
Section: 3 (Bibliothèques de fonctions)
NAME
Perl::Critic::Policy::ControlStructures::ProhibitPostfixControlsDESCRIPTION
Conway discourages using postfix control structures ("if", "for", "unless", "until", "while"). The "unless" and "until" controls are particularly evil because they lead to double-negatives that are hard to comprehend. The only tolerable usage of a postfix "if" is when it follows a loop break such as "last", "next", "redo", or "continue".do_something() if $condition; #not ok if($condition){ do_something() } #ok do_something() while $condition; #not ok while($condition){ do_something() } #ok do_something() unless $condition; #not ok do_something() unless ! $condition; #really bad if(! $condition){ do_something() } #ok do_something() until $condition; #not ok do_something() until ! $condition; #really bad while(! $condition){ do_something() } #ok do_something($_) for @list; #not ok LOOP: for my $n (0..100){ next if $condition; #ok last LOOP if $other_condition; #also ok }
CONFIGURATION
A set of constructs to be ignored by this policy can specified by giving a value for 'allow' of a string of space-delimited keywords: "if", "for", "unless", "until", and/or "while". An example of specifying allowed flow-control structures in a .perlcriticrc file:[ControlStructures::ProhibitPostfixControls] allow = for if until
By default, all postfix control keywords are prohibited.
The set of flow-control functions that are exempt from the restriction can also be configured with the 'flowcontrol' directive in your .perlcriticrc file:
[ControlStructures::ProhibitPostfixControls] flowcontrol = warn die carp croak cluck confess goto exit
NOTES
The "die", "croak", and "confess" functions are frequently used as flow-controls just like "next" or "last". So this Policy does permit you to use a postfix "if" when the statement begins with one of those functions. It is also pretty common to use "warn", "carp", and "cluck" with a postfix "if", so those are allowed too.AUTHOR
Jeffrey Ryan Thalhammer <thaljef@cpan.org>COPYRIGHT
Copyright (c) 2005-2008 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.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre