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?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Surprised by Perl parse of ternary operator
by Anonymous Monk on Dec 16, 2011 at 15:32 UTC |