From: "助田 雅紀" Date: 1999-05-18T08:33:38+09:00 Subject: [ruby-dev:6867] Re: Ruby 1.3.3-990513 助田です. In [ruby-dev:6856] Re: Ruby 1.3.3-990513 >>木村さんや助田さんのところでは、このバージョンのtest.rb >>はOKなんでしょうか? >すいません.まだコンパイルはおろか,展開すらしてません.m(_ _)m miniruby だけコンパイルしました. 環境は,Windows 95 + VC++5.0 です. テストしたところ,こちらでも失敗しました. 何のシェルも動かしていないただの MS-DOS プロンプト上でテストしました. >>./miniruby -i.bak -pe 'sub(/^[0-9]+$/){$&.to_i * 5}' script_tmp >h:\TEMPOR~1/rba00298:1: unterminated string meets end of file >指定した名前は、内部コマンドまたは外部コマンド、 >操作可能なプログラムまたはバッチ ファイルとして認識されません。 このエラーを同時に出す方法はわからないのですが .\miniruby -i.bak -pe 'sub(/^[0-9]+$/){$&.to_i *5} script_tmp とやると(後ろの'の付け忘れ) C:\WINDOWS\TEMP/rba68551:1: unterminated string meets end of file となります. ./miniruby -i.bak -pe 'sub(/^[0-9]+$/){$&.to_i * 5}' script_tmp とやると コマンドまたはファイル名が違います. となります. .\miniruby -i.bak -pe 'sub(/^[0-9]+$/){$&.to_i * 5}' script_tmp とやると動きますが結果は失敗します. '' であろうと "" であろうと script_tmp の結果は,5倍されず,"1\r\n" と変化するだけです.(小田さんのところと多分同じです.) test.rb のスクリプトでは /^[0-9]+$/ にマッチしないから失敗する ようです. 試しに MS-DOS プロンプトから .\miniruby -ne 'puts $_ if /^[0-9]+$/' script_tmp .\miniruby -ne 'puts $_ if /^[0-9]+$/ =~ $_.chomp' script_tmp .\miniruby -ne 'puts $_ if /^[0-9]+$/ =~ $_.chop' script_tmp とやった場合,上2つは何も表示しませんでした. 木村さんとわたなべさんがおっしゃるように ファイルオープン時のモード(binmode)か chomp の動きが怪しい (行末の処理が怪しい)のではないかと思います. 結局昨日は,ここまで(現象の確認)しかできませんでした. (つまりソースは一切見てません.) -------------------------------------------- 助田雅紀(masaki.suketa@systemplaza.co.jp) --------------------------------------------