From: "Peña, Botp" Date: 2007-07-04T13:55:51+09:00 Subject: block params scoping (was ruby-talk 257917: RE: Using a block to surround a string?) Fr David Black: # Method definitions always have their own local scope, so a, b, and # string are strictly local to the method. Blocks pick up the scope # that they're created in, and can also create variables that weren't # already in that scope. Those variables disappear when the block # exits; the ones that were there already survive: # # x = 1 # some_method { y = x + 1 } # same x; new y # y # undefined; block's y didn't survive # x # same x Hi David, How about parameter variables, will its scoping change/stay in ruby2 ? Currently, irb(main):011:0> x="testing" => "testing" irb(main):012:0> 5.times{|x|} => 5 irb(main):013:0> x => 4 i'd prefer x = "testing" some_method { |x| y = x + 1 } # different x; overrides any x x # => "testing", same x outside just asking for ruby englightenment kind regards -botp