原です。 > proc{ > iii=5 # dynamic local variable > $proc = proc{|i| > iii = i > } > $proc2 = proc { > $x = iii # dynamic variables shared by procs > } > # scope of dynamic variables > p (defined?(iii)) > }.call > p(defined?(iii)) # out of scope > > $x=0 # $xを初期化 > $proc.call(5) # 動的変数iiiに5を代入 > $proc2.call # $xにiiiの値を代入 > p $x # $x == 5 > > これでわかる? この例自体はわかるんですが、3箇所に proc が出てくるのが、、^^; 最小構成にするとどうなるんだろう。 ああ、それから、これも perl から来た人は躓くでしょうね。 print defined?(a), "\n" if a = TRUE # ==> FALSE ---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=-- Shin-ichro Hara(Nagaoka Univ.of Tech.)