まつもと ゆきひろです

In message "[ruby-list:9291] Re: 正規表現"
    on 98/08/27, OHARA Shigeki <os / iij.ad.jp> writes:

|大原です。

|> Perlにおいても"."は"\n"にはマッチしないのがデフォルトで、perl5から/sオ
|> プションでそれが変更できるようになった、のだと思います。
|
|これなんですが、$/ の内容によって挙動が変化するようになると
|いいように思います。

うーん,もうちょっと詰めないと結論を出せないとは思いますが,
このアイディアには否定的な印象を持っています.理由は

  * $/というグローバル変数によって変更する挙動は少ない方がよ
    い(増やしたくない).

  * 増やすにしても別の方法でも指定できるようにしたい(たとえ
    ばgetsが引数で指定できるように).

  * .が\nにマッチすると言うことは "abc\ndef" に対して $ はc
    の後ろには決してマッチしないことを意味するが,これは
    input record separatorである$/とは直接の関係が薄いように
    感じる.

からです.

あ,そうそう.もともとの稲葉さんの発言である

|> Perlにおいても"."は"\n"にはマッチしないのがデフォルトで、perl5から/sオ
|> プションでそれが変更できるようになった、のだと思います。

ですが,実際にはPerlにおけるデフォルトは昔から . は \n にマッ
チするという動作だったと思います(1文字列は1行だと仮定して高
速化している).この挙動はPerl4以前は $* で指定していましたが,
Perl5からは正規表現毎に独立して指定できるようになったのだと
思います.
                                まつもと ゆきひろ /:|)