Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^4: Looking for discussions of "block after or" syntax error

by LanX (Saint)
on May 01, 2013 at 21:28 UTC ( [id://1031653]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Looking for discussions of "block after or" syntax error
in thread Looking for discussions of "block after or" syntax error

> Besides, as far as I understand it (but I may be wrong on that, I haven't investigated very far), it seems to me that it is not really a issue of precedence between the operators, but a simpler question of left to right

Well, you are not "knowing" you are "guessing"...

... and that's not a good base for designing code.

What's worse, I also guessed that and and or have the same precedence ...

... but now take a look what B::Deparse says:

DB<102> dp $a and $b or $c { $c unless $a and $b; } DB<103> dp $a or $b and $c { $b and $c unless $a; }

too many surprises for my taste. =)

edit

from perlop

Operator Precedence and Associativity ... nonassoc list operators (rightward) right not left and left or xor

Cheers Rolf

( addicted to the Perl Programming Language)

Replies are listed 'Best First'.
Re^5: Looking for discussions of "block after or" syntax error
by Laurent_R (Canon) on May 01, 2013 at 22:31 UTC

    Well, you are not "knowing" you are "guessing"... ... and that's not a good base for designing code.

    This is unfair, Rolf. I am certainly not claiming to be an expert on the subject, this is why I am saying I may be wrong. But, please, don't say that I am just guessing, I have done a quite a little bit more work than just guessing. I am just admitting that I might be completely wrong, if such is the case, please show me why, and I will be happy to recognize it.

    What's worse, I also guessed that and and or have the same precedence ...

    Well, I knew they did not have the same precedence. But my point is that this is probably essentially irrelevant.

    ... but now take a look what B::Deparse says: ...

    $a and $b or $c

    What I am saying: true, i.e. $a and $b, if they are both true, otherwise, $c. Exactly equivalent to $c unless $a and $b;

    $a or $b and $c

    True if $a is true. Otherwise, true only if $b and $c are both true. Again, it seems to me that this is exactly equivalent to $b and $c unless $a;

    In brief, the two deparse examples that you have shown confirm exactly and precisely by left-to-right Boolean interpretation with short-circuit that I made.

    Again, I am being very careful on this, I may be completely wrong. But, *please*, don't use this uncertainty to claim that I am just guessing.

      ehm ... sorry if you conceive this as an unfair attack.

      Cheers Rolf

      ( addicted to the Perl Programming Language)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2024-04-23 16:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found