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