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