Eric Hodel wrote:
> On Jul 14, 2006, at 6:55 PM, Just Another Victim of the Ambient 
> Morality wrote:
>
>> On my (MS Windows) system, I have a couple of programs to help me 
>> live my electronic life and some of them are written in Ruby (are 
>> they still called "programs" or are they "scripts?").  I keep all 
>> these programs in a directory and have an execution path to them.
>>
>> I also have some patterns that come up time and time again in my Ruby 
>> code so I have factored them out into their own files so I may 
>> "require" them in any of my Ruby scripts.
>
> Are those files in ruby's load path?
>
>> The problem is that Ruby can't find them.  I had hoped that Ruby 
>> would search for "required" files in the directory of the running 
>> script but this doesn't appear to be the case.
>
> Ruby does not.
>

Well, it does look in the directory from which the script is run, which 
is not necessarily where the script is located.

>> I could have used the magic "$0" variable but then I'd have to 
>> operate on it before using it.  I also considered refactoring this 
>> work and using that but...
>>
>> Is there anything I can do to get Ruby to find these "required" scripts?
>
> Ruby searches these paths:
>
> ruby -e 'p $LOAD_PATH'
>

And the directory the scripts is started in shows up in that array as '.'

> You can use the -I argument or the RUBYLIB environment variable to add 
> paths to this.  You can also put your extra libraries in your 
> site_ruby directory.
>
>> I tried to call a PERL script from a Ruby script and that myseriously
>> failed.  I did a search on groups.google and found that you need to 
>> call the PERL interpreter, directly.  I found this a little odd since 
>> PERL scripts have no problem calling other PERL scripts.  It's not a 
>> problem of the environment, since Ruby can call executables in the 
>> execution path.
>
> I don't believe you.  Please show us an error.
>
> $ cat x.pl
> #!/usr/bin/env perl
>
> print "hi\n";
>
> $ ruby -e 'system "./x.pl"'
> hi
This is on Windows...maybe that makes a difference in this case? I don't 
know that Windows respects the #!
(I have no idea, I don't do any programming in Windows)

-Justin