From: Shin-ichiro Hara Date: 1996-10-27T19:26:40+09:00 Subject: [ruby-list:904] [REQ]Get Strings!<1> GETS(RS) 原です。 まず、落ち葉ひろいから。 (1)split 関数がほしい。(chop 関数みたいに忘れられた?) (2)$/ は awk の RS と同様な働きをするとされていますが、 $/ = "" としても、慣習的な複行レコードのモードになりません。 これは仕様でしょうか?$/ = "\n\n" としろということですか? (3)gsub(/.*/, "a") のように、gsub でパターンが '' にマッチ すると ruby が止まってしまう。 では本題。 私は ruby は既に Perl に勝っていると思いますが、テキストデー タの処理に関しても、ほぼ Perl と同様で十分過ぎるという気もし ます。しかし、さらにこんなのが関数があったら、もう完全に Perl なんかメじゃない、と言えるようなものが出来ないかとアイデアを 出してみました。。 余計な機能を増やしてサイズを増やすのも何だし、ruby の仕様は 既にとてもよく練られているし、キワモノ的仕様はまつもとさん は多分お嫌いだと思うので、なかなかヘタなリクエストもできない のですが、まあ、言うだけ言ってみますから、聞くだけ聞いてくだ さい。(^^; (3)string[負の値] を許してほしい。 string[-5, 3] 後ろから 5 文字目 から 3 文字 string[-5..-3] 後ろから 5 文字目 から後ろから 3 文字文字目まで string[3..-1] 3 文字目以降すべて などを許す。(これは perl にあるか。Range クラスとの関係でまず いですか?) (4)gets(RS), each_line(RS), readline(RS), readlines(RS) がほ しい。 例えばメールを読み込むのに header = gets("\n\n") body = gets(nil) とできて気持ちいいです。 g_var.push($/) $/ = "\n\n" header = gets $/ = nil body = gets $/ = g_var.pop とするのと雲泥の差です。特に Thread で動かしたりすることを考え ると。 (つづく) ---------------------------------------------------------- 原信一郎