NAME¶
if - "use" a Perl module if a condition holds
SYNOPSIS¶
use if CONDITION, MODULE => ARGUMENTS;
DESCRIPTION¶
The "if" module is used to conditionally load another module. The
construct
use if CONDITION, MODULE => ARGUMENTS;
will load MODULE only if CONDITION evaluates to true. The above statement has no
effect unless "CONDITION" is true. If the CONDITION does evaluate to
true, then the above line has the same effect as:
use MODULE ARGUMENTS;
The use of "=>" above provides necessary quoting of
"MODULE". If you don't use the fat comma (eg you don't have any
ARGUMENTS), then you'll need to quote the MODULE.
EXAMPLES¶
The following line is taken from the testsuite for File::Map:
use if $^O ne 'MSWin32', POSIX => qw/setlocale LC_ALL/;
If run on any operating system other than Windows, this will import the
functions "setlocale" and "LC_ALL" from POSIX. On Windows
it does nothing.
The following is used to deprecate core modules beyond a certain version of
Perl:
use if $] > 5.016, 'deprecate';
This line is taken from Text::Soundex 3.04, and marks it as deprecated beyond
Perl 5.16. If you "use Text::Soundex" in Perl 5.18, for example, and
you have used warnings, then you'll get a warning message (the deprecate
module looks to see whether the calling module was "use"'d from a
core library directory, and if so, generates a warning), unless you've
installed a more recent version of Text::Soundex from CPAN.
BUGS¶
The current implementation does not allow specification of the required version
of the module.
SEE ALSO¶
Module::Requires can be used to conditionally load one or modules, with
constraints based on the version of the module. Unlike "if" though,
Module::Requires is not a core module.
Module::Load::Conditional provides a number of functions you can use to query
what modules are available, and then load one or more of them at runtime.
provide can be used to select one of several possible modules to load, based on
what version of Perl is running.
AUTHOR¶
Ilya Zakharevich <mailto:ilyaz@cpan.org>.