loadee.rb로드는 로컬 경로에서 작동하고 require는
puts '> This is the second file.'
loaddemo.rb
puts 'This is the first (master) program file.'
load 'loadee.rb'
puts 'And back again to the first file.'
내가 "ruby loaddemo.rb"
를 실행하면, 이것은 잘 작동합니다. 두 파일은 같은 디렉토리에 있으며 그 디렉토리는 내가 실행 한 디렉토리입니다.
하지만 확장 또는없이 필요에 부하를 변경하고, 만약 내가 얻을 :
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load
-- loadee.rb (LoadError)
from <internal:lib/rubygems/custom_require>:29:in `require'
from loaddemo.rb:2:in `<main>'
내 질문은 물론이고, 왜이 경우 작업이 필요하지 않습니까? 그래야지, 그렇지? 로드를 수행하고 다른 경로를 사용해야합니까?
루비 버전 1.9.2
로드가없는 이유는 무엇입니까? 그것은 다른 경로 변수를 사용합니까? –
이것은 실제로 루비에 대한 버그로 현재 나열되어 있습니다. 1.9는'require'를 사용할 때로드 경로에서 "현재 디렉토리"를 제거했지만'load'는 제거하지 않았습니다. http://redmine.ruby-lang.org/issues/2710 –
또한,'load'를 사용할 때마다 전체 파일을 평가하는 반면,'require'를 사용하면 처음으로 파일을 평가할 때만 평가한다는 점에 유의하십시오 그것. –