http://qs321.pair.com?node_id=469068


in reply to use depending on environment

Using a begin block is preferrable if you can get away with it, but if you can't know whether or not you want to load a module at compile-time, try using 'require' instead of 'use'. 'require' will load the module at run-time. ( 'use' is equivilant to BEGIN { require MODULE; } )

In general, 'use' is preferable because it gives the compiler more information about the symbols in your namespace. For example, where you might have done

use Data::Dumper; print Dumper $foo;
You can't just substitute require because then the compiler won't know where the "Dumper" function comes from. Instead you have to do something like
require Data::Dumper; print Data::Dumper::Dumper($foo);


Xaositect - Whitepages.com