
On May 19, 2009, at 10:20 , Chaddaï Fouché wrote:
On Tue, May 19, 2009 at 8:46 AM, Brandon S. Allbery KF8NH
wrote: On May 19, 2009, at 01:42 , Jason Dagit wrote:
I've often seen this bit of scary code in VB: Dim i as Integer = 5 If i = "5" Then ' Do something, because 5 = "5" End If
Sure, that works in Perl too.
That's because in numeric context Perl convert strings into numbers, so even 5 == "5 coffees" would be true... But 5 eq "5 coffees" wouldn't since eq force a string context and 5 is converted to "5"
If you use == instead of eq then it will emit a warning and then find them equal. This is something of a common logic error in Perl. -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH