On Sep 27, 2006, at 11:00 AM, Nobumi Iyanaga wrote:
This is a newbie question: how can I determine if a specific module
is installed on a client machine?
I would like to do something like this:
if (MacPerl installed is true) {
do this...;
}
else {
do nothing...;
}
Thank you in advance for any help.
Wrap a require() in an eval block, and then check to see if the eval
() succeeded. Untested, typed in Mail, etc.:
my $has_modulename;
BEGIN {
eval {
require Module::Name;
# If you'd ordinarily "use Module::Name qw(foo bar baz);", pass
# the qw(foo bar baz) to import here.
import Module::Name qw(foo bar baz);
};
# If the eval failed, we don't have the module
if ($@) {
$ has_modulename = 0;
} else {
$ has_modulename = 1;
}
}
That's if you want to check within a script - if you want to quickly
check from a command-line, there's an easier way:
perl -MModule::Name -e 'print $Module::Name::VERSION, "\n"'
sherm--
Web Hosting by West Virginians, for West Virginians: http://wv-www.net
Cocoa programming in Perl: http://camelbones.sourceforge.net