in reply to existence check of Module and dynamic load
you could simply wrap the use of your optional module in an eval block:
eval "use Foo;"; if ($@=~/Can't locate/) { print "Module Foo is not available.\n"; } [download]
CURobartes-