假设我有一个名为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
相当的红宝石答案 0 :(得分:1)
您可以在代码自身绑定的上下文中使用eval
。这将允许您执行任意代码,同时仍然从该代码的令人讨厌的副作用封装您的程序
它不是在运行另一个Ruby解释器,但它会为你执行ruby代码。
答案 1 :(得分:0)