Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: Illogical logic statement

by fkento (Acolyte)
on Dec 01, 2012 at 02:41 UTC ( [id://1006559]=note: print w/replies, xml ) Need Help??


in reply to Re: Illogical logic statement
in thread Illogical logic statement

Thanks Athanasius. But I'm just trying to compare two strings. Here is a simpler case:
if ( 'f' == 't' ) { print "f equals t\n"; } else { print "f does not equal t\n"; }
Output:

f equals t

How does one compare strings?

Replies are listed 'Best First'.
Re^3: Illogical logic statement
by LanX (Saint) on Dec 01, 2012 at 02:44 UTC
    > How does one compare strings?

    eq

    Cheers Rolf

      Ah Hah!! Thank you! I forgot that you have to use 'eq' to compare strings. Wow I just wasted an hour trying to figure that one out. Thanks for the help.
Re^3: Illogical logic statement
by Jenda (Abbot) on Dec 01, 2012 at 12:44 UTC

    Compare '15' eq '15.0' versus '15' == '15.0'! Or if this looks artificial, let's assume you've read one of the numbers from a XML file and the other from STDIN. Now both are stored as strings by Perl, strings that will be converted to numbers if needed, but still what you read from both sources were strings! How should Perl guess whether you wanted to compare them as strings or as numbers? And if Perl did try to guess, how would you make sure it guesses right?

    A single comparison operator is fine for strongly typed languages, but for weakly typed like Perl and JavaScript a pair of operators works much better. Actually the shared operator for string and number comparison and another for addition and concatenation is what I dislike most about JavaScript and what leads to huge loads of errors in JavaScript code in general. formFieldName.value + 1 anyone?

    Jenda
    Enoch was right!
    Enjoy the last years of Rome.

      Well naturally that should be formFileName.value +++ 1

      :p

Re^3: Illogical logic statement
by Laurent_R (Canon) on Dec 01, 2012 at 11:07 UTC

    Try this:

    if ( 'f' eq 't' ) { print "f equals t\n"; } else { print "f does not equal t\n"; }

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (2)
As of 2024-04-20 03:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found