String#indexにKarp-Rabinアルゴリズムを導入しても、それほど速くならないのは、 文字列を直接書いた場合、毎回Stringオブジェクトを生成するからだと思います。 while gets print if $_.index 'XYZ' end while gets print if $_.index /XYZ/ end 文字列を変数に代入しておけばよいのですが、 この際、正規表現の場合のようにonce化する機能を提供できないでしょうか。 %'xyz', %"xyz" のような指定方法でも良いですが、 文字列以外にも使用できるように、onceというキーワードを追加するのは どうでしょうか? (onceオブジェクトは凍結されます) once 'XYZ' once [1,2,3] 他にもっとましな方法があれば、それでも良いですが。 -- 小迫@ソフネック 渋谷区恵比寿1-15-1