On Aug 14, 2013, at 11:34 AM, Alexey Mishustin wrote: > Hi Jing, > > Thanks for the reply. > > So, there is no built-in way to catch these typos?
The problem is that the construct if( $foo = $bar ) { ... is not always a typo. It means: "assign value of $bar to variable $foo and test if the result is logically true", which is perfectly valid. If that were not allowed, then you would have to write: $foo = $bar; if( $foo ) { ... which not everyone would like. However, the construct if( $foo = 2 ) { ... would mean: "assign value of 2 to variable $foo and test if the result is logically true", which doesn't make sense because 2 is always logically true and there is no point in testing it. That is why the Perl compiler can give you a warning in the second case but not in the first. -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/