Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Perl recognises that it is a bad practice.

  perl -we ' print "true\n" if "12" == "12php"'
  Argument "12php" isn't numeric in numeric eq (==) at -e line 1.
  true

  perl -w -e 'my $foo = "12php"; $foo = $foo + 1; print $foo, "\n";'
  Argument "12php" isn't numeric in addition (+) at -e line 1.
  13
  
(an exception seems to be made for $foo++ though... that's Perl for you).


$foo++ isn't an exception. It has documented behavior on strings. That is sometimes very useful.


I meant it's an exception because it does not throw a warning, even though you are treating a string as a number. (This is contrary to $foo = $foo + 1). The DWIM string auto-increment doesn't even kick in unless the variable matches /^[a-z]/i.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: