Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Equality operators

by mantadin (Beadle)
on Apr 25, 2006 at 11:40 UTC ( #545537=note: print w/ replies, xml ) Need Help??


in reply to Equality operators

As '==' is the numeric equality operator, it doesn't make sense to use it for strings. For all Strings you should use eq instead of ==, ne instead of != and cmp instead of <=>.


Comment on Re: Equality operators
Re^2: Equality operators
by jkva (Chaplain) on Apr 25, 2006 at 11:41 UTC
    Mantadin, thank you. I am aware of this, however I am wondering why '1' == '1foo' evals to true while '1' eq 'foo1' does not.

      When converting strings to numbers, Perl only looks at the start of the string. '1foo' becomes 1 and 'foo1' becomes 0.

      --
      <http://dave.org.uk>

      "The first rule of Perl club is you do not talk about Perl club."
      -- Chip Salzenberg

      because strings are automatically converted to numbers when needed. '1foo' is converted to 1 and 'foo1' is converted to 0.

      Others have already explained how the conversion works, but if you want to see for yourself the number into which a string is coerced, add 0 to the string.

      print(0+'a', "\n"); # 0 print(0+'b', "\n"); # 0 print(0+'1', "\n"); # 1 print(0+'2', "\n"); # 2 print(0+'1foo', "\n"); # 1 print(0+'foo1', "\n"); # 0

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://545537]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (4)
As of 2014-09-24 00:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (243 votes), past polls