From: Wakou Aoyama Date: 2002-03-26T04:55:35+09:00 Subject: [ruby-list:34638] Re: cgi.rb でマルチパートでの実験方法 青山です。 On Wed, Mar 20, 2002 at 04:44:29PM +0900, Wakou Aoyama wrote: > EOL.replace("\n") > > ところで、定数の再定義のワーニングは、以前(1.2以前?)は起動オプション > -w を指定した場合だけに出ていたはずですが、無条件にワーニングを出すほ > どに危険な行為、と扱いが変わったのでしょうか? この件は -dev に移動したので詳しくは [ruby-dev:16532] からのスレッドを 読んで頂くとして、定数の再定義の無条件ワーニングへの対処としては、 replace よりも、remove_const の方が良さそう、という事を -list に還元し ておきます。 remove_const(:EOL) EOL = "\n" EOL.replace("\n") は、たまたま EOL に replace メソッドがあるクラスであ る為に利用可能ですが、Numeric など、replace 不可なクラスのオブジェクト であった場合には、この方法は使えません。 従って、replace という方法よりも、ちゃんと、一度削除してから、再度定義 する、という方法がこのワーニングに対するより良い対処法になりそうです。 もっとも、定数というのは、変わらない事を期待して定義されているはずです から、replace にせよ、remove_const にせよ、再定義には注意が必要ですね。 -- 青山 和光 Wakou Aoyama