Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^2: "x ? y : z" notation

by davido (Cardinal)
on Mar 26, 2009 at 04:58 UTC ( [id://753340]=note: print w/replies, xml ) Need Help??


in reply to Re: "x ? y : z" notation
in thread "x ? y : z" notation

$x == 1 ? print "x was '1'" : print "x was something else";

While that's technically correct it doesn't take advantage of the fact that the ternary operator has a return value; whatever expression is evaluate after the ?.

See another adaptation that takes advantage of this feature.

print( "x was " . $x == 1 ? "'1'" : "someting else" );

Dave

Replies are listed 'Best First'.
Re^3: "x ? y : z" notation
by rovf (Priest) on Mar 26, 2009 at 09:09 UTC
    take advantage of the fact that the ternary operator has a return value
    How true; Perl is a bit unorthogonal in this respect, in that there is (at least) one case where you can achieve this effect with a plain 'if':

    sub lessthan { if($_[0] < $_[1]) {1} else {0} }
    Some languages (old examples: Algol60 and Algol68) are more regular in this respect...

    BTW, does someone know by chance which was the first language which used ?: to represent "ternary if"? Of course you had this already in LISP or BCPL, but with a different syntax. The earliest occurance of ?: I know of, is in C, but I wouldn't be surprised if it was used in even older languages already.

    -- 
    Ronald Fischer <ynnor@mm.st>

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (2)
As of 2024-04-25 20:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found