スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Perlのuseとrequireの違い 

perlでuseとrequireの違いは何だろうか。
そもそもuseではなくrequireを使うべきケースはあるのか。

use
・コンパイル時に評価される
・ロードしたモジュールのimport関数を実行
・use Package;は下記と同意

BEGIN {
    require Package;
    MODULE->import(LIST);
}

require
・実行時に評価される
  だから条件分岐で読んだり読まなかったりできる。
  だから遅延読み込み可能。
  だからfork()後に読み込むと親プロセスでは読み込まない。
  だけどfork()する場合useの方がメモリ効率が良いらしい。なぜ?
・importが実行されない。必要ならば手で実行する。下記の通り。

require 'Package.pm';
Package->import('hoge');

結論としてはrequireを使うべきケースも存在しているようだ。 多分、自分はそんなケースにぶち当たらないと思うが。

コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://haginov.blog35.fc2.com/tb.php/125-2d9368e4

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。