[#1551] Hashes as keys — "Nathaniel Talbott" <nathaniel@...>

I was just playing around with Hash#hash and discovered that you can't use a

13 messages 2003/09/23

Re: [bug] Silent death of "ruby -e"

From: Johan Holmberg <holmberg@...>
Date: 2003-09-05 11:47:25 UTC
List: ruby-core #1520
On Fri, 5 Sep 2003 nobu.nokada@softhome.net wrote:
> >
> > I think that the third line above (marked with a *) should have
> > given an error too.
>
> It seems to depend on the shell.  You run mswin or mingw ruby
> from cygwin bash, no?
>

Almost: mswin-Ruby in a tcsh shell.

But you are right: it seems like it is the eternal problem with
command line parsing and different shells on Windows ... :-(

If I (in my tcsh shell) pass the command line marked with (*) in my
earlier mail to a C-program I've written for testing purposes I get:

    $ printargs  ruby -e 'puts foo["a"]'

    argc = 4
      argv[0] = 'e:\holmberg\bin\printargs'
      argv[1] = 'ruby'
      argv[2] = '-e'
      argv[3] = 'puts foo["a"]'

Here the outermost ' characters are written by  "printargs".
My "printargs" program prints the value of argc/argv as they are
received by a normal C-application on Windows.

From this I conclude that Ruby will get a similar set of arguments
(shifted down one position when the current argv[0] is removed).

To me it seems like Ruby gets a perfeclty valid small Ruby-program
as an element of argv:

      puts foo["a"]

Or am I missing something  ?

I also noticed that this problem is quite new.
When I run different versions of Ruby from Andrew Hunts Windows
installer I get:

    $ e:/ruby173-8/bin/ruby -e 'puts xxx["x"]'
    -e:1: undefined local variable or method `xxx' for [...]
    $
    $ e:/ruby180-10/bin/ruby -e 'puts xxx["x"]'
    $

Do you know the reason for the change ?

/Johan Holmberg


In This Thread