Ruby 为什么我能';是否使用“load”加载具有特定文件名的脚本?

Ruby 为什么我能';是否使用“load”加载具有特定文件名的脚本?,ruby,load,filenames,Ruby,Load,Filenames,昨天我发现,我无法使用load重新加载脚本rss.rb。它只在几秒钟内为我执行未知的操作,返回true,并且不执行脚本。但是使用require\u relative可以毫无问题地加载(一次)。我必须重命名脚本文件,才能按我的意愿使用它。 那么为什么要求\u relative起作用,而load不起作用呢?以及如何知道哪些文件名不能加载load? 我正在使用ruby 1.9.2p0(2010-08-18)[i386-mingw32] UPD:C:>类型1.rb p加载“rss.rb” p加载'2.r

昨天我发现,我无法使用
load
重新加载脚本
rss.rb
。它只在几秒钟内为我执行未知的操作,返回
true
,并且不执行脚本。但是使用
require\u relative
可以毫无问题地加载(一次)。我必须重命名脚本文件,才能按我的意愿使用它。
那么为什么
要求\u relative
起作用,而
load
不起作用呢?以及如何知道哪些文件名不能加载
load

我正在使用ruby 1.9.2p0(2010-08-18)[i386-mingw32]

UPD:C:>类型1.rb p加载“rss.rb” p加载'2.rb'
C:>键入rss.rb p'rss.rb已加载'
C:>类型2.rb p“2.rb已加载”
C:>Ruby1.rb 符合事实的 “2.rb已加载”
正确

您正在从标准库加载rss.rb
load
首先通过
$load\u路径
,只有在那里找不到文件时,才会在当前目录中查找该文件

通过执行
加载“/rss.rb”
,可以使其仅在当前目录中显示

它使用
require\u relative
的原因是
require\u relative
从不查看
$LOAD\u路径


使用
load
时,应记住
load
,与
require\u relative
不同,它将在当前目录中查找文件,而不是在脚本所在的目录中。因此,它是否找到文件取决于调用脚本时所处的目录。(当然,在以前的ruby版本中,使用
require
加载本地文件也是如此)。

您正在从标准库加载rss.rb
load
首先通过
$load\u路径
,只有在那里找不到文件时,才会在当前目录中查找该文件

通过执行
加载“/rss.rb”
,可以使其仅在当前目录中显示

它使用
require\u relative
的原因是
require\u relative
从不查看
$LOAD\u路径

使用
load
时,应记住
load
,与
require\u relative
不同,它将在当前目录中查找文件,而不是在脚本所在的目录中。因此,它是否找到文件取决于调用脚本时所处的目录。(当然,在以前的ruby版本中,使用
require
加载本地文件也是如此)

C:> type 1.rb p load 'rss.rb' p load '2.rb'
C:> type rss.rb p 'rss.rb loaded'
C:> type 2.rb p '2.rb loaded'
C:> ruby 1.rb true "2.rb loaded" true