Provided by: libperl-critic-perl_1.152-1_all bug

NAME

       Perl::Critic::Policy::ValuesAndExpressions::ProhibitMismatchedOperators - Don't mix
       numeric operators with string operands, or vice-versa.

AFFILIATION

       This Policy is part of the core Perl::Critic distribution.

DESCRIPTION

       Using the wrong operator type for a value can obscure coding intent and possibly lead to
       subtle errors.  An example of this is mixing a string equality operator with a numeric
       value, or vice-versa.

           if ($foo == 'bar') {}     #not ok
           if ($foo eq 'bar') {}     #ok
           if ($foo eq 123) {}       #not ok
           if ($foo == 123) {}       #ok

CONFIGURATION

       This Policy is not configurable except for the standard options.

NOTES

       If warnings are enabled, the Perl interpreter usually warns you about using mismatched
       operators at run-time.  This Policy does essentially the same thing, but at author-time.
       That way, you can find out about them sooner.

       Perl handles the strings 'NaN' and 'inf' as special numbers and creates an NV struct when
       compared with a numeric operator.  Although not necessary it is allowed to write code such
       as:
           my $i = 'inf'+0; This pattern helps others understand that the variable is indeed the
       Infinite or NaN numbers as Perl interprets them.  Only these two special string numbers
       are allowed to have the '+' operator which would otherwise be allowed only for strings.

AUTHOR

       Peter Guzis <pguzis@cpan.org>

COPYRIGHT

       Copyright (c) 2006-2023 Peter Guzis.  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.

perl v5.36.0         Perl::Critic::Policy::ValuesAndExpressions::ProhibitMismatchedOperators(3pm)