use a Perl module if a condition holds
if module is used to conditionally load another module. The construct:
... will load
evaluates to true; it has no
evaluates to false. (The module name, assuming it
contains at least one
, must be quoted when
'use strict "subs";'
effect.) If the CONDITION does evaluate to true, then the above line has the
same effect as:
- use MODULE ARGUMENTS;
For example, the Unicode::UCD module's charinfo function will use two functions from Unicode::Normalize only if a certain condition is met:
Suppose you wanted
to be an empty list, i.e., to have the
- use MODULE ();
You can't do this with the
if pragma; however, you can achieve
exactly this effect, at compile time, with:
For example, the
category of warnings was introduced in
Perl-5.22. This warning flags certain instances of superfluous arguments to
sprintf. But if your code was running warnings-free on
earlier versions of perl and you don't care about
more recent versions, you can call:
construct assumes that a module or pragma has correctly
method -- but most modules and pragmata have not.
That explains why the
construct is of limited applicability.
The current implementation does not allow specification of the required version of the 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.
The provide module from CPAN can be used to select one of several possible modules to load based on the version of Perl that is running.
Ilya Zakharevich mailto:email@example.com.
COPYRIGHT AND LICENCE
This software is copyright (c) 2002 by Ilya Zakharevich.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.