>>646
eval使えば外部からローカル変数も操作できるってことじゃね?

def create_counter
 counter = 0
 Proc.new {counter += 1}
end

c = create_counter
p c.call
p c.call
p c.call
p eval('counter += 1000000', c)