David Alan Black wrote:
>Hello --
>
>Something which did surprise me quite a bit:
>
>  def rtest
>    pr = Proc.new do
>      return "Returning from closure"
>    end
>
>    pr.call
>    return "Returning from rtest"
>  end
>
>  puts rtest   # "Returning from closure"
>
>__END__
>
>(Tested on ruby 1.6.2 (2001-01-18) [i586-linux].)
>
>Does that strike anyone else as unexpected?  

Yes. However, I quickly learned that "return" is 
not a keyword that is associated with a code 
block in any way. It will always "escape" and 
return from the outer layer. Sometimes, that 
behavior is handy and simplifies my code. 
Sometimes it really mucks things up.

Kevin