From 88da3e79b8c079c72cc77abead72ca52b64617bc Mon Sep 17 00:00:00 2001 From: Neil Bowers Date: Tue, 25 Jun 2013 00:51:49 +0100 Subject: [PATCH] Added example usage and SEE ALSO links to similar modules in doc for if.pm --- dist/if/if.pm | 48 ++++++++++++++++++++++++++++++++++++++---- t/porting/known_pod_issues.dat | 4 ++++ 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/dist/if/if.pm b/dist/if/if.pm index 1fb5f3d..376f26b 100644 --- a/dist/if/if.pm +++ b/dist/if/if.pm @@ -31,23 +31,63 @@ if - C a Perl module if a condition holds =head1 DESCRIPTION +The C module is used to conditionally load another module. The construct use if CONDITION, MODULE => ARGUMENTS; -has no effect unless C is true. In this case the effect is -the same as of +will load MODULE only if CONDITION evaluates to true. +The above statement has no effect unless C is true. +If the CONDITION does evaluate to true, then the above line has +the same effect as: use MODULE ARGUMENTS; -Above C<< => >> provides necessary quoting of C. If not used (e.g., -no ARGUMENTS to give), you'd better quote C yourselves. +The use of C<< => >> above provides necessary quoting of C. +If you don't use the fat comma (eg you don't have any ARGUMENTS), +then you'll need to quote the MODULE. + +=head2 EXAMPLES + +The following line is taken from the testsuite for L: + + use if $^O ne 'MSWin32', POSIX => qw/setlocale LC_ALL/; + +If run on any operating system other than Windows, +this will import the functions C and C from L. +On Windows it does nothing. + +The following is used to L core modules beyond a certain version of Perl: + + use if $] > 5.016, 'deprecate'; + +This line is taken from L 3.04, +and marks it as deprecated beyond Perl 5.16. +If you C in Perl 5.18, for example, +and you have used L, +then you'll get a warning message +(the deprecate module looks to see whether the +calling module was C'd from a core library directory, +and if so, generates a warning), +unless you've installed a more recent version of L from CPAN. =head1 BUGS The current implementation does not allow specification of the required version of the module. +=head1 SEE ALSO + +L can be used to conditionally load one or modules, +with constraints based on the version of the module. +Unlike C though, L is not a core module. + +L provides a number of functions you can use to +query what modules are available, and then load one or more of them at runtime. + +L can be used to select one of several possible modules to load, +based on what version of Perl is running. + =head1 AUTHOR Ilya Zakharevich L. diff --git a/t/porting/known_pod_issues.dat b/t/porting/known_pod_issues.dat index 900567c..d505ef4 100644 --- a/t/porting/known_pod_issues.dat +++ b/t/porting/known_pod_issues.dat @@ -62,6 +62,7 @@ File::chdir File::Copy::Recursive File::Findgrep File::MMagic +File::Map File::ShareDir flock(3) fsync(3c) @@ -97,6 +98,7 @@ Module::Find Module::Info Module::Pluggable Module::Pluggable::Object +Module::Requires Module::Starter Moo Moose @@ -133,6 +135,7 @@ Pod::PXML poll(2) prctl(2) printf(3) +provide pstruct ptar(1) ptargrep(1) @@ -166,6 +169,7 @@ Test::Harness::TAP Test::Inline Test::MockObject Text::Autoformat +Text::Soundex Text::Template Text::Unidecode Time::Object -- 2.7.4