Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^2: assigning the maximum of two numbers

by EvanCarroll (Chaplain)
on Nov 03, 2005 at 03:09 UTC ( [id://505205]=note: print w/replies, xml ) Need Help??


in reply to Re: assigning the maximum of two numbers
in thread assigning the maximum of two numbers

I just feel compelled to reply:

my $max_xy = ($x,$y)[$x<$y]

I have never seen that before. You get +100 Evan points for that show of cunning. I plan to write programs around this in the future. I feel it worthy to note though that you lack a special vital caveat. Your code can be borked if one utilizes $[, ex $[=1, You might want to append it slightly:

my $max_xy = ($x,$y)[abs( ($x<$y)+$[ )];


Evan Carroll
www.EvanCarroll.com


Grandfather WINS!

Congratulations on your inabliity to pick up on a joke, your prize.. Amulet of a Sense Of Humor (+5 Sense Of Humor). With the amulet equiped your sense of humor is now: 5

Congrats again.

Replies are listed 'Best First'.
Re^3: assigning the maximum of two numbers
by GrandFather (Saint) on Nov 03, 2005 at 03:30 UTC

    $[ is nasty, nasty, nasty, and is deprecated. If all Perl had to be written on the off chance that $[ may have changed, almost no Perl project would get completed.

    For any new code it should be completely safe to ignore $[. About the only good use I can think of for it is to write nasty obfu code, or maybe for Golf.


    Perl is Huffman encoded by design.
Re^3: assigning the maximum of two numbers
by ikegami (Patriarch) on Nov 04, 2005 at 20:15 UTC
    I saw that used a lot over 15 years ago in BASIC code. BASIC didn't have a ternary conditional operator, but it was possible to emulate it.
    $a = $i > $j ? 6 : 10;
    could be written as the following in BASIC (knowing that false is 0 and true is -1):
    LET a = (i > j) * 4 + 10;
    just as it could be written as the following in Perl (knowing that false is 0 and true is 1):
    $a = ($i > $j) * -4 + 10;

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2024-04-25 22:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found