in reply to No warning when assiging to a variable

there is no warning because there is actually nothing to warn about. when you say $foo = $bar you're just assigning the value and there will be no conditions to evaluate. Inside an `if' conditional, the value assigned to the LHS will be used as is, like
$bar = 2; if($foo = $bar) { # do something }
is same as
if(2){ # do something }