NAME
Module::Selector - use the first module, that works.
SYNOPSIS
use Module::Selector;
$mods = Module::Selector->new(['Some::Mod', 'Other::Mod', 'YAM']);
while(defined($mod = $mods->each)) {
$@ = undef;
eval { $mod->do_something() };
last unless $@
}
$mods->rewind;
while(defined($mod = $mods->each)) {
$@ = undef;
eval { $mod->something_else() };
last unless $@
}
DESCRIPTION
The idea behind this module is to test for a series of modules with a common interface, as to see either which module is able to do a specific task or simply to see which module is installed.
This module is especially useful if you had to test the modules, which you wish to use, multiple times otherwise, which is a bit tricky via eval.
It will try to load the given modules one by one, loading them only if needed.
METHODS
new(LIST REFERENCE TO PKGS)
Creates a new object, should be given a reference to a list of
module names (like "File::Spec", "MP3::Info", ...) as sole argument.
each
Returns the next module that was successfully imported via require,
returns undef once if no other module could be imported. After that
it starts again with the first module..
rewind
Resets "each()", so that it starts again with the first module, even
if there were other modules still availabe to test. Useful if you
abort loops and want to start all over again.
EXPORTS
None.
CAVEATS
Module::Selector saves any errors encountered when loading modules in a locally scoped hash (local to the the "_try()" function, which is used by "each()"). This is necessary, sorry.
PREREQUISITES
None.
INSTALLATION
To install this module, run the following commands:
perl Makefile.PL
make
make test
make install
SUPPORT AND DOCUMENTATION
After installing, you can find documentation for this module with the perldoc command.
perldoc Module::Selector
You can also look for information at:
Search CPAN
http://search.cpan.org/dist/Module-Selector
CPAN Request Tracker:
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Selector
AnnoCPAN, annotated CPAN documentation:
http://annocpan.org/dist/Module-Selector
CPAN Ratings:
http://cpanratings.perl.org/d/Module-Selector
COPYRIGHT AND LICENCE
Copyright (C) 2006 Odin Kroeger
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.