Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions3pm
Don't use operators like "not", "!~", and "le" within "until" and "unless".
Affiliation
This Policy is part of the core Perl::Critic distribution.
Overview
until ($foo ne 'blah') { #not ok...}while ($foo eq 'blah') { #ok...}
A number of people have problems figuring out the meaning of doubly negated expressions. "unless" and "until" are both negative constructs, so any negative (e.g. "!~") or reversible operators (e.g. "le") included in their conditional expressions are double negations. Conway considers the following operators to be difficult to understand within "unless" and "until":
! not!~ ne !=< > <= >= <=>lt gt le ge cmp
Configuration
This Policy is not configurable except for the standard options.
Releases
10 releases since Debian 5.0 (Lenny); the text changed 9 times.