黒田です.

 >まつもと ゆきひろ@トヨタケーラムです.
 >
 >そういえば,0.97cの新機能として以前指摘のあった,
 >
 >In message "[ruby-list:188] Linux report"
 >    on 96/02/20, ozawa / prince.pe.u-tokyo.ac.jp <ozawa / prince.pe.u-tokyo.ac.jp> writes:
 >|小澤さく@東大です.
 >
 >|a を Array だとして,"#{a[0]}" のようなものの展開はしないのですか?
 >
 >というのを実装しました.実際には文字列,正規表現の中での#{}
 >は,{}を含まない任意の式が記述できるようになりました.意味無
 >いんですけど,
 >
 > % ruby -le 'print "<<#{print 1}>>"
 > 1
 > <<nil>>
 >
 >なんて結果になります.つまり,#{print 1}を評価して,1を出力
 >し,その戻り値のnilを埋め込んだ文字列を外側のprintで出力する
 >わけです.

オプション解析のために作ったルーチンで
- --
 1:ARGV.each{|ta|
 2:  if ta =~ /^-(\w+)/
 3:    $1.each_byte{|c|
 4:      if (VERSION == '0.97c')
 5:	   $c2 = c.to_s
 6:	   eval("$OPT_#{$c2} = 1")
 7:      else
 8:	   c2 = c.to_s
 9:	   eval("$OPT_#{c2} = 1")
10:      end
11:    }
12:    continue
13:  end
14:}
- --
5行目のようにグローバル変数にしておかないと,

(eval):1: undefined method `c2' for main(Object)

と言われます. 0.97c で言われるようになったのですが, 仕様なので
しょうか?
- --
黒田  淳 (Kuroda Jun)
<URL:mailto:j_kuro / pluto.ai.kyutech.ac.jp>
<URL:http://www.pluto.ai.kyutech.ac.jp/~j_kuro/>