• ベストアンサー

use と require の違いが分かりません。

use と require の違はなんでしょうか? また、require を2度使うとエラーになってしまうのは なぜでしょうか? 教えてください、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

require はライブラリから関数をロードする実行文です。 その(requireがある)行に到達したときにロードが実行されます。 use は、どちらかというと宣言文に近い。その行に到達する わけではなく、最初に use としたライブラリを全てロードします。   use Module; は、以下と全く等価です。   BEGIN { require "Module.pm"; import Module; } また、2度使うとエラーになる理由は、   「require が、そのように作られているから」 です(→参照URL)。

参考URL:
http://www.cec.co.jp/usr/hasegawa/Docs/perl-jman/perl-4.019/perl_137.html
mami3
質問者

お礼

use と require の違い分かりました。ありがとうございました。 また、URLも参考になりました。 素早い回答ありがとうございました。

mami3
質問者

補足

参照したURLに、「同じファイル名では、2度インクルードできない」 とあいましたが、全く別のファイル名でも2度 require することは 出来ないのでしょうか?

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

別々のファイルに対してであれば幾つでも require できますよ。 require "Module_A"; require "Module_B"; require "Module_C";  …

mami3
質問者

お礼

早々の回答ありがとうございます。

mami3
質問者

補足

私もそれが出来ると思っていたのに、エラーとなってしまいました。 原因は別のところにあるのかしら? この行をコメントにするとエラーが無くなり、 モジュールからもエラーが出ないので、わからなくなっていました。