file1
需要file2
,我希望能够file2
在某些条件下取消评估而不退出整个过程.
# file1.rb puts "In file 1" require 'file2' puts "Back in file 1" # file2.rb puts "In file 2" # return if some_conditional puts "Still in file 2"
运行时file1
,我想看到的输出是:
In file 1 In file 2 Back in file 1
目标是Still in file 2
永不打印,同时Back in file 1
打印.我能做些什么才能做到file2
这一点?
我无法使用exit
/ exit!
/ abort
这里,因为Back in file 1
永远不会打印.我可以使用raise
/ fail
,但为了做到这一点,我将不得不改变file1
和rescue
失败require
.我希望找到一种不涉及改变的方法file1
.
更新:
A"顶级回报"的功能已经被添加.
以下行__END__
不会被执行.
# file2.rb puts "In file 2" __END__ puts "Still in file 2" # Never gets called