i believe there are other similar quirks when using "and/or"..
has ruby relegated the use of "and/or"....?
No, but it's essentially inherited from perl. These operators have
extremely low precedence, so without parens your statement was being
parsed as something like
(when x==1) or x==2
I think the typical perl use is something like:
open F, "foo" or die "Oops";
If you use || then you need extra params so you don't get
open(F, "foo" || die "Oops");
But if you rely on poetry mode like this it may still trip you up. IMO
you're better off with:
a = (some-expr) || (raise "Oops")
a = (some-expr) || raise("Oops")
but brian, i'm still inside the "case" block. can't ruby sense that?
best regards -botp
···
On Fri, Feb 5, 2010 at 3:14 PM, Brian Candler <b.candler@pobox.com> wrote:
No, but it's essentially inherited from perl. These operators have
extremely low precedence, so without parens your statement was being
parsed as something like
No, but it's essentially inherited from perl. These operators have
extremely low precedence, so without parens your statement was being
parsed as something like
(when x==1) or x==2
I think the typical perl use is something like:
....
but brian, i'm still inside the "case" block. can't ruby sense that?
And shouldn't 'when' have the same precedence as 'if'?
At least for 'or', you can use a comma instead:
case
when x==1, x==2; puts "1 or 2"
end
but it doesn't read as well, and there's nothing that works like this for 'and'.
···
On Fri, Feb 5, 2010 at 3:14 PM, Brian Candler <b.candler@pobox.com> wrote: