という名前のファイルを考えてみましょうweird1.rb:
load 'weird2.rb'
とweird2.rb:
p = gets.chomp
puts "Got input: #{p}"
weird1.rb引数なしで実行するとgets、コンソールからユーザーの入力が読み取られます。
c:\a\ruby>weird1.rb
test
Got input: test
引数を指定して実行すると、指定された引数からgets読み取ります (以下の場合はそれぞれsomeRandomArgとweird2.rb):
c:\a\ruby>weird1.rb someRandomArg
weird2.rb:1:in `gets': No such file or directory - someRandomArg (Errno::ENOENT)
c:\a\ruby>weird1.rb weird2.rb
Got input: p = gets.chomp
の引数weird2から読み取るのはなぜですか? weird1これは予想外のようです。getsファイルではなくから読み取ることになってstdinいます。何が起こっているのですか?どうすれば修正できますか?