From: Shin-ichro Hara Date: 1998-11-23T21:52:31+09:00 Subject: [ruby-dev:3644] Re: block local variable (Re: スコープの範囲) 原です。 In message "[ruby-dev:3642] Re: block local variable (Re: =?ISO-2022-JP?B?GyRCJTklMyE8JVckTkhPME8bKEI=?=)" on 98/11/23, Koji Arai writes: | |新井です。 |> 原です。 |> もともとの新井さんの要望は、システムに関わる大域変数を一時的に |> 変えたいということだったのでは?だからこれこそしたいことだった |> んですよね。 | |あう、それは違います。$/:=nil は思い付きで余計なこ |と書いてしまいましたが、このスレッドの本質ではない |です。($/:= が採用されても、ブロックを無理矢理作ら |なくてはならないから、あまりうれしくなかった) ああ、すいません。 #ローカルな状況把握はしばしばミスをまねく。(^^; |def dummyscope | binding |end | |$assign = %Q{v = 2; p v} | |eval $assign, dummyscope # => 2 局所化されてる |p v if defined?(v) # => | |v = 1 # eval より前に定義 |p v # => 1 |eval $assign, dummyscope # => 2 局所化されてる |p v # => 1 なるほど、おもしろい binding の使い方ですね。 勉強になりました。(^^