0

如何检测文件的当前读取是直接从命令行完成的,还是通过加载/请求完成的?

有一个众所周知的方法:

__FILE__ == $0

但是当主文件有可能自行加载时,这将无法正常工作。

4

1 回答 1

0

这太容易了。我将分配一个标志并检查它。一个稍微棘手的事情是相关作业的排序。(a) 条件,(b) 分配标志,和 (c) 加载必须按以下顺序进行:

if @loaded and __FILE__ == $0
  # the main reading
  ...
else
  # not the main reading
  ...
end
...
@loaded = true
...
the_relevant_command_that_leads_to_loading_of_a_file

如果我希望它们以不同的顺序排列,我必须嵌入其中一些并强制执行此顺序。

于 2012-11-01T00:51:34.877 回答