if ($foo=20) {&do_something;}
to test the value of a variable. ($foo=20) will always evaluate to 'true' and &do_something will always be called.
Sooo... who can see the problem here (and the solution), and who else suffers from repeated 'gotchas'?
'==' will return true if the what is on the left and right are numerically equal.