in reply to Testing for a module's presence

Hello,
I think you would have to do something like:
eval { require Some::Module; }; if ($@) { print "Can't find Some::Module\n"; }

When you say "use", things happen at compile time and would happen before the eval so, the error would not get trapped.

rlb3

Replies are listed 'Best First'.
Re^2: Testing for a module's presence
by sandfly (Beadle) on Feb 11, 2005 at 23:09 UTC
    "require" also better because it doesn't call import(). The module code still gets executed though. Typically, "require"d modules just create subs in their own package, but a badly-behaved module could in principle mess up any namespace.

    If you want to "use" a module at runtime, you can eval a quoted string:
    eval "use $mymodule";<br>print $@ if $@;