On 02.05.2008 16:15, Florian Gilcher wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> 
> On May 2, 2008, at 4:01 PM, Iñáki Baz Castillo wrote:
> 
>> Hi, why in the second case the non declared "my_var" variable is
>> processed but not in the first case?
>>
>> irb> nil || 2 || my_var
>> => 2
>>
>> irb> nil | 2 | my_var
>> NameError: undefined local variable or method `my_var'
>>
>>
>> Of course, I prefer the first case: 2 is already true so there is no
>> reason to read the next "my_var". Also, it's not good for performance,> is it?
> 
> | is the bitwise OR and something entirely different from ||.

This is only mostly correct.  Semantics of | depend on the class that 
implements it.

irb(main):001:0> %w{a b c} | %w{c d e}
=> ["a", "b", "c", "d", "e"]
irb(main):002:0> %w{a b c} & %w{c d e}
=> ["c"]

Cheers

	robert