Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

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

by LanX (Canon)
on May 01, 2013 at 21:28 UTC ( #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)


Comment on Re^4: Looking for discussions of "block after or" syntax error
Select or Download Code
Replies are listed 'Best First'.
Re^5: Looking for discussions of "block after or" syntax error
by Laurent_R (Monsignor) 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
Node Status?
node history
Node Type: note [id://1031653]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (8)
As of 2015-07-30 23:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (273 votes), past polls