Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^3: Surprised by Perl parse of ternary operator

by BrowserUk (Pope)
on Dec 16, 2011 at 13:18 UTC ( #943942=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Surprised by Perl parse of ternary operator
in thread Surprised by Perl parse of ternary operator

bend the rules differently.

I wouldn't exactly call it "bending the rules". For perl or the other two.

I read it that perl uses a minimal munch approach at that point of the syntax and hence sees:

( ( $fred == 42) ? ( $config = 'k1') : ( $config ) ) = 'k2';

Whereas the other two use a maximal munch approach and so see:

( $fred == 42 ) ? ( $config = 'k1' ) : ( $config = 'k2' );

I think the use case for Perl's way is using the ternary as the lvalue target of assignment. Something like:

$lo = $hi = 0; $x = 7; $mid = 5; $x < $mid ? $lo : $hi = $x; print "lo:$lo hi:$hi";; lo:0 hi:7

Can Ruby or PHP do that?


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?


Comment on Re^3: Surprised by Perl parse of ternary operator
Select or Download Code
Re^4: Surprised by Perl parse of ternary operator
by Anonymous Monk on Dec 16, 2011 at 15:32 UTC

    Can Ruby or PHP do that?

    No, at least Ruby seems to lack a concept of a "variable" lvalue. (foo = bar) = 5 gives a syntax error, and x < mid ? lo : hi = x gets parsed as x < mid ? lo : (hi = x)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2014-09-19 04:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

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











    Results (129 votes), past polls