To answer the second part of your question:
Digging into this I tried something "simplier" and got more confused:
perl -e 'print ((.0425*2) + .0025 ) - ((.0425*2) + .0025 ); print $/;'
just bring the perlrun option -w (warnings) to the rescue:
$ perl -we 'print ((.0425*2) + .0025 ) - ((.0425*2) + .0025 ); print $
+/;'
print (...) interpreted as function at -e line 1.
Useless use of subtraction (-) in void context at -e line 1.
0.0875
That can be fixed with either extra parens or a plus sign:
$ perl -we 'print (((.0425*2) + .0025 ) - ((.0425*2) + .0025 )); print
+ $/;'
0
$ perl -we 'print +((.0425*2) + .0025 ) - ((.0425*2) + .0025 ); print
+$/;'
0
There is a explanation of this in the perldoc for print:
"Be careful not to follow the print keyword with a left parenthesis unless you want the corresponding right parenthesis to terminate the arguments to the print; put parentheses around all arguments (or interpose a + , but that doesn't look as good)." |