From: ohrsts@... Date: 2007-07-10T05:24:52+09:00 Subject: [ruby-list:43692] require の使いかた ? 小原です。御世話になっています。 require がうまく機能しません。なぜでしょうか? 私の環境は、下記です。 [ohr@localhost QQQ]$ ruby -v ruby 1.8.2 (2004-11-03) [i386-linux] [ohr@localhost QQQ]$ ls #qmail# members mmhsh.rb* x.rb* y.rb* ----- members の内容 ------- 001:鬼退治 桃太郎 :会長 002:足柄山 金太郎 :会計 003:浦島 太郎 :理事 004:龍宮 乙姫 :顧問 005:足柄 熊太郎 :会員 006:ピノキオ :会員 007:アンパンマン :会員 008:孫悟空 :会員 ----- members の内容 end---- ----- mmhsh.rb の内容 ------- #!/usr/bin/ruby # hash m code => 会員名 をつくる m={} f=open("members","rb") while s=f.gets key=s[0,3];val=s[4,20] m[key]=val end f.close ----- mmhsh.rb の内容 end---- ----- x.rb の内容 ------- #!/usr/bin/ruby # hash m code => 会員名 をつくる m={} f=open("members","rb") while s=f.gets key=s[0,3];val=s[4,20] m[key]=val end f.close puts m["001"] ----- x.rb の内容 end---- ----- y.rb の内容 ------- #!/usr/bin/ruby require 'mmhsh' puts m["001"] ----- y.rb の内容 end---- 以上を準備して x.rb , y.rb は同じ と考えたのですが、y.rb ではエラーに なりました。 ------- 実行結果 ---------- [ohr@localhost QQQ]$ ./x.rb 鬼退治 桃太郎 [ohr@localhost QQQ]$ ./y.rb ./y.rb:5: undefined local variable or method `m' for main:Object (NameError) [ohr@localhost QQQ]$ ------- 実行結果 end------- 念のためにと $LOAD_PATH を調べました。下記です。 ------------------------------------------ irb(main):004:0> puts $LOAD_PATH /usr/local/lib/site_ruby/1.8 /usr/local/lib/site_ruby/1.8/i386-linux /usr/local/lib/site_ruby /usr/lib/ruby/1.8 /usr/lib/ruby/1.8/i386-linux . => nil irb(main):005:0> ----------------------------------------- y.rb がエラーになる理由が分かりません。 どなたか教えて下さい。