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
Re^5: Looking for discussions of "block after or" syntax error
by Laurent_R (Vicar) 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 taking refuge in the Monastery: (5)
As of 2014-08-22 23:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (168 votes), past polls