Hi all,

Thanks for your anwers yesterday. Are you ready for my next day of 
learning Ruby? ;)

First impressions of ranges:
---------------------------
let's try ranges as sequences:

irb(main):271:0> (0..2).each { |bb| puts bb }
0
1
2
=> 0..2
irb(main):272:0> (0...2).each { |bb| puts bb }
0
1
=> 0...2

very fun. Now let's try ranges as conditions:

irb(main):282:0* a=[ "aaa", "bbbb", "bbbbbb", "ccc", "dddddd" ]
=> ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"]
irb(main):283:0> a.each { |b| puts b if b=~/b/..b=~/d/ }
bbbb
bbbbbb
ccc
dddddd
=> ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"]
irb(main):284:0> a.each { |b| puts b if b=~/b/...b=~/d/ }
bbbb
bbbbbb
ccc
dddddd
=> ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"]

"Oups it did not it again!"

.. and ... seems not working on the same way if you use ranges as 
sequences or ranges as conditions. My point of view: (unless I'm making 
a mistake) It gets confusing.



First impressions of blocks:
----------------------------

irb(main):293:0* a=[ "aaa", "bbbb", "bbbbbb", "ccc", "dddddd" ]
=> ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"]
irb(main):294:0> a.each { |a| puts a }
aaa
bbbb
bbbbbb
ccc
dddddd
=> ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"]
irb(main):295:0> a
=> "dddddd"

a is changed. scope of the block is not duplicate/separate?

Florent,