From: matsue Date: 2000-10-17T01:18:26+09:00 Subject: [ruby-list:25480] Re: 始めまして matz@zetabits.com (Yukihiro Matsumoto) wrote: > まつもと ゆきひろです > > In message "[ruby-list:25474] 始めまして" > on 00/10/16, matsue writes: > > |・元々が perl 使いだったので、「String型に入った数字の文字列」と、 > | Numeric型(?)の自動変換が欲しいかな、とか思いました。 > > 昔はそうだったんですけどね。型が あ、どうやらそのようで・・・。 いきさつは理解しました。 > | それと関係して、変数の中身が nil だったときの扱いが、 > | 時々うっとおしく感じてしまったのも事実です。 > | > | 中身が nil だったりした場合、perlの感覚ですと全く問題なしに > | 「何も表示されない」でパスするのですが、rubyですとエラーが > | 出てきてしまいます。 > > どういうエラーだかもうちょっと具体的なコードがあるとアドバイ > スできるかも。 えっと、エラーはとりあえず回避したのですが、いわゆる、 私自身の中の「スクリプト」という言葉に対する固定観念が 理解を妨げてます。(^^;; 今は慣れてきたので、拒絶反応はなくなりました。(^^;; > |・loadとrequireの違いがよくわからない。 > | > | FAQを見て、「一度だけロードされるか、2度目もロードされるかの違い」 > | とは読んだのですが、それ以上の違いはないのでしょうか? > > requireは > > * 同じファイルを2度ロードしない > * 拡張子を省略できる > * ダイナミックライブラリをロードできる > > という違いがあります。 > > | loadだと動いて、requireだと、そのファイルの中( .rb ファイル )で > | 定義された変数名が有効にならない、というような状況が少し見られました。 > > もうちょっと具体的な状況を教えて下さい。 きっと mod_ruby 特有の状況でした。 ↓ 状況は下の説明を読んで理解できました。ありがとうございます。 始めのうちはrequire使わずに組んでいて、ファイル分割し始めたのは最近。 少し上のような状況が現れた後からは、「apacheを頻繁に再起動して実行確認」 という方向に進んで組んでいたので、普通に実行(コマンドライン上や普通のCGIなどで) させて状況が再発したら、又詳しくレポートさせて下さい。 > | 私の組んでいるシステムが mod_ruby上で動いているせいか、 > | 組みなおしたスクリプトが、時々、apacheを再起動させないと > | 有効にならない、という事も起きているせいで、必ずしもloadとrequireの > | 違いだけではないとは思うのですが、そういうこともあったので、 > | 書かせてもらいました。 > > 上に書いたようにrequireは2度ロードしません。mod_rubyは同じイ > ンタプリタを再利用しますから、requireの対象が変化してもロー > ドされません。プログラムが枯れるまでは通常のCGIとして実行す > る方がお勧めです。 理解できました。そういうことだったのですね。 require で引っ張ってきたファイルの中身を変えても変化がなく、 load にしたら動いた、というような状況は、そういうことだったのですね。 (たしかこのような感じでした。再発したら、今度はメモとってレポートします。) ありがとうございます。 --- Mattue E-mail: mattue@eternal.ac http://eternal.ac