From: Luis Casillas Date: 2001-04-09T05:04:40+09:00 Subject: [ruby-talk:13563] Mysterious error messages Hello everybody. I've recently started coding in Ruby, and I must say that I'm very pleased with the language. However, a couple of days ago I ran into a problem I can't understand. I'll show you the offending code and error message (numbers are line numbers. The lines I leave out are either comments or blank. The program terminates fatally at line 8): 1 #!/usr/local/bin/ruby -I /usr/local/corpora/220A/Ruby 6 load "vars.rb" 8 require "cgi" /usr/local/corpora/220A/apache/cgi-bin/trans_display.rb:8:in `require': wrong argument type Array (expected String) (TypeError) from /usr/local/corpora/220A/apache/cgi-bin/trans_display.rb:8 [Sun Apr 8 12:47:26 2001] [error] [client 127.0.0.1] Premature end of script headers: /usr/local/corpora/220A/apache/cgi-bin/trans_display.rb The file "vars.rb" do nothing but define some global variables: DIRROOT = "/usr/local/corpora/220A/" $: << [ DIRROOT + "/Ruby/" ] TRANS_DIR = DIRROOT + "/callhome_spanish_trans_970711/" DATA_DIR = DIRROOT + "/DATA/" The strangest thing is that if I reverse the order of lines 6 and 8 above, the program works perfectly. This exact same behavior happens in several other scripts. I would like to know if this is a bug or not. It certainly is very unexpected behavior. Ideally, I'd like to understand how my code, the internals of Ruby, and the CGI module are conspiring here ;). I should mention that the order that produces the error is the one I would prefer-- the one that defines the constants and sets the load path first. -- Luis Casillas Department of Linguistics Stanford University