http://qs321.pair.com?node_id=944728


in reply to expected 0 not result gotten

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)."