Perl::...itions(3pm)
π NAME π
Okay bestie, this page is Perl::...itions(3pm) from User Contributed Perl Documentation, and the policy in question is Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions β yes, that whole long name, no cap π β and it's literally here to say: don't use operators like not, !~, and le within until and unless. periodt. π
π AFFILIATION π
This Policy is part of the core Perl::Critic distribution, bestie. It's in the main squad, it's iconic, it's giving main character energy. β¨
π¦ DESCRIPTION π¦
Here's the vibe check with the exact examples:
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. That's it, bestie β no secret extra knobs, no hidden settings, just the standard options. π
π«Ά SEE ALSO π«Ά
Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks
π AUTHOR π
Elliot Shank "<perl@galumph.com>" β iconic behavior, honestly. π
π COPYRIGHT π
Copyright (c) 2007-2023 Elliot Shank
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.
Byeee bestie π«Ά this page came from perl v5.42.0, dated 2024-10-23, and it's the Perl::...itions(3pm) page from User Contributed Perl Documentation. Slay and read your manpages responsibly β¨π
π¦ where this page comes from
- opensuse-leap 16.0: perl-Perl-Critic 1.156.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms