## name Basic failure
## failures 6
## cut
do_something() if $condition;
do_something() while $condition;
do_something() until $condition;
do_something() unless $condition;
do_something() for @list;
do_something() foreach @list;
#-----------------------------------------------------------------------------
## name Configured to allow all
## failures 0
## parms {allow => 'if while until unless for foreach'}
## cut
do_something() if $condition;
do_something() while $condition;
do_something() until $condition;
do_something() unless $condition;
do_something() for @list;
do_something() foreach @list;
#-----------------------------------------------------------------------------
## name Configured to allow all, all regular control structures
## failures 0
## parms {allow => 'if unless until while'}
## cut
if($condition){ do_something() }
while($condition){ do_something() }
until($condition){ do_something() }
unless($condition){ do_something() }
#-----------------------------------------------------------------------------
## name Regular for loops
## failures 0
## cut
#PPI versions < 1.03 had problems with this
for my $element (@list){ do_something() }
for (@list){ do_something_else() }
foreach my $element (@list){ do_something() }
foreach (@list){ do_something_else() }
#-----------------------------------------------------------------------------
## name Legal postfix usage
## failures 0
## cut
use Carp;
while ($condition) {
next if $condition;
last if $condition;
redo if $condition;
return if $condition;
goto HELL if $condition;
exit if $condition;
}
die 'message' if $condition;
die if $condition;
warn 'message' if $condition;
warn if $condition;
carp 'message' if $condition;
carp if $condition;
croak 'message' if $condition;
croak if $condition;
cluck 'message' if $condition;
cluck if $condition;
confess 'message' if $condition;
confess if $condition;
exit 0 if $condition;
exit if $condition;
#-----------------------------------------------------------------------------
## name override exempt flowcontrols
## failures 0
## parms {flowcontrol => 'assert'}
## cut
use Carp::Assert;
assert $something if $condition;
#-----------------------------------------------------------------------------
## name overriding exempt flowcontrols restores the defaults
## failures 8
## parms {flowcontrol => 'assert'}
## cut
use Carp::Assert;
warn $something if $condition;
die $something if $condition;
carp $something if $condition;
croak $something if $condition;
cluck $something if $condition;
confess $something if $condition;
exit $something if $condition;
do_something() if $condition;
#-----------------------------------------------------------------------------
## name Individual "keyword" hash assignment
## failures 0
## cut
my %hash;
$hash{if} = 1;
$hash{unless} = 1;
$hash{until} = 1;
$hash{while} = 1;
$hash{for} = 1;
$hash{foreach} = 1;
#-----------------------------------------------------------------------------
## name "Keyword"-list hash assignment
## failures 0
## cut
my %hash = (
if => 1,
unless => 1,
until => 1,
while => 1,
for => 1,
foreach => 1,
);
#-----------------------------------------------------------------------------
##############################################################################
# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/ControlStructures/ProhibitPostfixControls.run $
# $Date: 2008-03-16 17:40:45 -0500 (Sun, 16 Mar 2008) $
# $Author: clonezone $
# $Revision: 2187 $
##############################################################################
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
# fill-column: 78
# indent-tabs-mode: nil
# c-indentation-style: bsd
# End:
# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :