e$B1J0fe(B@e$BCNG=!%6e9)Bg$G$9!%e(B
e$BF|K\e(B Ruby e$B%+%s%U%!%l%s%9$N@J$Ge(B
e$B$3$N$H$3$m$N%3%%C%H$N1F6A$Ge(B Ruby/Tk
e$B4X78$,%(%i!<$r=P$9$h$&$Ke(B
e$B$J$C$F$$$k$H$$$&OC$rJ9$$$?$N$G;n$7$F$$?$H$3$m!$e(B
e$B3N$+$KLdBj$,H/@8$7$F$$$^$7$?!%e(B
e$B<B$N$H$3$m!$;d$K$H$C$F$O!V:$$k!W$I$3$m$+e(B
e$B5^=j$X$NL?Cf$H$b8@$($k$[$I$NBg%@%a!<%8$H$J$kLdBj$G$9!%e(B(;_
e$BNc$($P<!$N$h$&$J%9%/%j%W%H$,$"$C$?$H$7$^$9!%e(B
----< hoge.rb >---------------------------------------
def hoge(*args)
[self, args]
end
p hoge(1, self)
Object.new.instance_eval{ p hoge(2, self)}
e$B$3$l$rC1=c$Ke(B ruby hoge.rb e$B$H$9$l$P!$Nc$($Pe(B
[main, [1, main]]
[#Object:0x401d5cb4, [2, #Object:0x401d5cb4]]
e$B$H=PNO$5$l$^$9!%e(B
e$B$b$A$m$se(B ruby -e “load ‘hoge.rb’” e$B$H$7$F$bF1MM$G$9!%e(B
e$B$G!$%0%m!<%P%k$JL>A06u4V$r1x@w$9$k$3$H$J$/<B9T$7$?$$$H9M$($Fe(B
----< hoge2.rb >--------------------------------------
def null_binding
Module.new.module_eval{binding}
end
eval(File.read(‘hoge.rb’, null_binding))
e$B$H$7$Fe(B ruby hoge2.rb e$B$J$I$H$7$?>l9g!$e(B
e$B>/$7A0$^$G$Ne(B ruby-1.8 (e$B>/$J$/$H$be(B ruby-1.8.4
e$B$N%j%j!<%9HGe(B) e$B$G$Oe(B
[#Module:0x401d5db2, [1, #Module:0x401d5db2]]
[#Object:0x401d5cb4, [2, #Object:0x401d5cb4]]
e$B$J$I$H$$$&$h$&$K!$$&$^$/e(B(?)e$BF0$$$F$/$l$F$$$^$7$?!%e(B
e$B$7$+$7!$8=:_$Ne(B ruby 1.8.4 (2006-06-11) [i686-linux] e$B$G$Oe(B
hoge2.rb:6:in null_binding': undefined method
hoge’ for
#Module:0x401d5d90 (NoMethodError)
from hoge2.rb:2:in null_binding' from hoge2.rb:2:in
null_binding’
from hoge2.rb:4
e$B$H$J$j$^$9!%e(B
e$B$3$&$7$?$3$H$Oe(B ruby -e “load ‘hoge.rb’, true” e$B$N$h$&$J>l9g$Oe(B
e$B$G$-$k$Y$-$J$N$G$O$J$$$+$H$b;W$&$N$G$9$,!$$3$l$be(B
[main, [1, main]]
./hoge.rb:6: undefined method `hoge’ for #Object:0x401d5a20
(NoMethodError)
from ./hoge.rb:6
from -e:1
e$B$H$J$C$F$7$^$C$F%@%a$G$9!%e(B
e$B!V%b%8%e!<%k$N%3%s%F%-%9%H$GI>2A$9$k$s$@$+$i!$$=$&$J$C$FEv$?$jA0!%e(B
e$B0JA0$K$G$-$F$$$?$3$H$NJ}$,%P%0!We(B
e$B$H$*$C$7$c$k$+$b$7$l$^$;$s$,!$e(B
load e$B$G$b%@%a!$e(Bbinding e$B$G$b%@%a$H$$$&$3$H$K$J$k$H!$e(B
e$B4X?t7?$N%a%=%C%IDj5A$r9T$C$F$$$k%9%/%j%W%H$r$=$N$^$^$Ke(B
e$B%0%m!<%P%k$JL>A06u4V$r1x@w$5$;$:$K<B9T$9$k<jCJ$,$"$j$^$;$s!%e(B
e$B$=$N$?$a!$Hs>o$K:$$C$?>u67$K$J$C$F$$$^$9!%e(B
e$B$G$-$l$P0JA0$NF0:n$KLa$7$FM_$7$$$N$G$9$,!$e(B
e$B$b$7!$;EMM>e!$0JA0$N>uBV$K$OLa$9$3$H$O@dBP$K$G$-$J$$$N$G$"$l$P!$e(B
e$B$<$R$H$b;j5^$KBe49<jCJ$rDs6!$$$?$@$1$^$9$h$&6/$/$*4j$$CW$7$^$9!%e(B