I've been following this thread as well as why's post (and the  
comments) at:

http://redhanded.hobix.com/inspect/stuffingYourHandDownTheDisposal.html

and I'm left confused about 2 things:

1) What sort of scope does begin..end introduce? In the comments to  
his post, why writes "Variables declared inside a begin..end or  
inside a block are block local, they perish with the close of the  
block." But my own experience seems to contradict why's statement.  
This program does not throw an error:

#!/usr/local/bin/ruby
begin
x = 1
end
p x

2) Why are people getting different results when they run the CustObj  
garbage collection code? When I run it, Object 1 never gets collected  
by GC, even after exiting the begin..end scope.

Can anybody help me understand?

Jay