I'm not computer whizzy enough to explain in detail but I think that if you ask a computer to store a floating point number which is obtained as a fraction (eg. $a = 1/3;) then you get 0.333333333333333 (not 0.3 recurring) to however many decimal places. If yuo then operate on this number, because it does not remain a fraction, the results are "rounded". So to compare the result of iakobski's sqrt and subsequent squaring to 1/3 would not match using ==.
In this case it is only integers (whole numbers - no decimal places) which are being discussed so they must be stored more sensible and a numerical comparison (==) will be more efficient than comparing the two strings (especially on large numbers, possibly several hundreds of thousands of times through a loop).
I think essentially the eq and ne have to go through both "strings" a character at a time and compare them but == or != can just say these numbers are('nt) the same.
larryk
----------------------------------------------------
$less->{'chars'} = `"time in the pub" | more`; # :-D
|