loadee.rbलोड स्थानीय पथ पर काम करता है, की आवश्यकता होती है नहीं
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 ने 'आवश्यकता' का उपयोग करते समय लोड पथ से "वर्तमान निर्देशिका" को हटा दिया, लेकिन 'लोड' के लिए नहीं। http://redmine.ruby-lang.org/issues/2710 –
साथ ही, ध्यान रखें कि हर बार जब आप 'लोड' का उपयोग करते हैं, तो यह पूरी फ़ाइल का मूल्यांकन करता है, जबकि' आवश्यकता 'का उपयोग केवल पहली बार फ़ाइल का मूल्यांकन करता है यह। –