なかだです。

  $ ruby -se 'puts global_variables.grep(/foo/)' -- --foo-bar
  $-foo-bar

というように、-sオプションでアクセスできない変数ができてしまい
ます。とりあえず記号類は_に置き換えといてはどうでしょうか。


* ruby.c (process_sflag): replace non-alphanumeric chars in variable
  names with '_'.


Index: ruby.c =================================================================== RCS file: /cvs/ruby/src/ruby/ruby.c,v retrieving revision 1.99 diff -U2 -p -r1.99 ruby.c --- ruby.c 27 Apr 2005 23:21:58 -0000 1.99 +++ ruby.c 29 Apr 2005 02:09:42 -0000 @@ -420,11 +420,16 @@ process_sflag() s[0] = '$'; - if (p = strchr(s, '=')) { - *p++ = '\0'; - rb_gv_set(s, rb_str_new2(p)); - } - else { - rb_gv_set(s, Qtrue); + v = Qtrue; + for (p = s + 1; *p; p++) { + if (*p == '=') { + *p++ = '\0'; + v = rb_str_new2(p); + break; + } + if (ISASCII(*p) && !isalnum(*p)) { + *p = '_'; + } } + rb_gv_set(s, v); s[0] = '-'; }
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦