I've found certain triplets of numbers that added up and put in a variable are, equal to 1, print as 1, are true on looks_like_number, match 1 when evaluated with eq but do not match 1 using using ==.

The order the numbers are added matters, the script below produces output in the form.

```0.688 + 0.289 + 0.023
total is 1
looks like a number
fails on ==
matches on eq

0.688 + 0.023 + 0.289
total is 1
looks like a number
matches on ==
matches on eq

0.559 + 0.380 + 0.061
total is 1
looks like a number
matches on ==
matches on eq

#!/usr/bin/perl
use strict;
use warnings;
use Scalar::Util qw(looks_like_number);

while (<DATA>) {
if (m{^#}) {
print;
next;
}
chomp;
my (\$x, \$y, \$z) = split(m{ });
#   my \$var = \$x + \$y + \$z;
my \$var = \$x;
\$var += \$y;
\$var += \$z;

print "\$x + \$y + \$z\n";
print "total is \$var\n";
if (looks_like_number(\$var)) {
print "looks like a number\n";
}
else {
print "doesn't look like a number\n"
}
if (\$var == 1) {
print "matches on ==\n";
}
else {
print "fails on ==\n";
}
if (\$var eq 1) {
print "matches on eq\n";
}
else {
print "fails on eq\n"
}
print "\n";
}

__DATA__
#FAIL
0.688 0.289 0.023
0.500 0.422 0.078
0.693 0.290 0.017
0.207 0.563 0.230
0.491 0.421 0.088
0.498 0.420 0.082
0.696 0.285 0.019
0.693 0.286 0.021
0.517 0.409 0.074
# ORDER CHANGED
0.688 0.023 0.289
0.422 0.078 0.500
# PASS
0.559 0.380 0.061
0.648 0.314 0.038
0.546 0.414 0.040
0.600 0.348 0.052
0.653 0.311 0.036
0.741 0.245 0.014
0.787 0.201 0.012
0.651 0.318 0.031
0.627 0.331 0.042
```

In reply to \$var == 1 fails when \$var = 1 by mjlush

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

• Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
• Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
• Read Where should I post X? if you're not absolutely sure you're posting in the right place.