假设我有一个名为hello_world.rb的ruby脚本,它只有一行
puts "Hello, world"我想从另一个名为spawn_hello_world.rb的ruby脚本中调用它
pipe = IO.popen("ruby1.9.1 hello_world.rb", 'w+')
if pipe
puts pipe.gets
end我的问题是:有没有一种快捷的方式来运行另一个ruby进程,而不必以这种方式调用操作系统?
我知道我能做到
pipe = IO.popen('-', 'w+')它将启动另一个ruby解释器,然后我可以使用
pipe.puts "puts "Hello World""但这似乎也相当不雅观。
我基本上是在寻找一种相当于python的multiprocessing module的ruby
发布于 2010-10-31 02:05:15
您可以在代码自己的绑定上下文中对代码使用eval。这将允许您执行任意代码,同时仍然封装您的程序,使其免受该代码的不良副作用。
它并没有运行另一个Ruby解释器,但是它会为你执行你的ruby代码。
发布于 2010-10-31 02:19:37
你能在这里给我们一些背景知识吗?你打算怎么做?你不能只重构你的代码来使用"require"或者"include“方法吗?
只是好奇而已。
路易斯
https://stackoverflow.com/questions/4059961
复制相似问题