end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

use と require の違い

perldoc -f use によれば、ほぼ同じらしい。

use Module ();
BEGIN { require Module }

つまり、requreは実行時に評価され、useはcompile時に評価されます。

これに関連して次のようなものがあります。

Module::Pluggable

次のように記述すると、Test1::Test2 以下のクラスを use する必要がなくなります。

use Module::Pluggable require => 1, search_path => ['Test1::Test2'];
my %PLUGINS = map {$_ => 1 } __PACKAGE__->plugins; #<-これも必要
UNIVERSAL::require

動的なクラスのロード(use も require も可能)?

cpan で UNIVERSAL-require にあるサンプルコードを読むと早いかも...

http://search.cpan.org/search?query=UNIVERSAL%3A%3Arequire&mode=all