如何获得主绑定?换句话说,在以下代码中,我如何才能使eval
忽略先前在some_codes
... some_codes
中所做的所有作业?
some_codes
...
some_codes
eval(string_to_be_executed, binding)
答案 0 :(得分:2)
最简单的方法是在文件顶部创建一个绑定:
block = Proc.new{}
# some_codez
# ...
# some more of teh codez
eval(string_to_be_evaluated, block.binding)
答案 1 :(得分:2)
我最终做到了这一点,这似乎比Ben接受的答案略显优雅。
在要加载的第一个文件的开头,分配如下内容:
$main_binding = binding
然后,在必要时,我可以使用它:
eval(string_to_be_evaluated, $main_binding)