This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Extensive documentation patch redux
[perl5.git] / lib / if.pm
CommitLineData
cd16c24c
IZ
1package if;
2
b9761643 3our $VERSION = '0.03';
cd16c24c
IZ
4
5sub work {
6 my $method = shift() ? 'import' : 'unimport';
7 return unless shift; # CONDITION
a3e5cfd4
S
8
9 my $p = $_[0]; # PACKAGE
b9761643
AT
10 (my $file = "$p.pm") =~ s!::!/!g;
11 require $file or die;
a3e5cfd4
S
12
13 my $m = $p->can($method);
14 goto &$m if $m;
cd16c24c
IZ
15}
16
17sub import { shift; unshift @_, 1; goto &work }
18sub unimport { shift; unshift @_, 0; goto &work }
19
201;
21__END__
22
23=head1 NAME
24
25if - C<use> a Perl module if a condition holds
26
27=head1 SYNOPSIS
28
29 use if CONDITION, MODULE => ARGUMENTS;
30
31=head1 DESCRIPTION
32
33The construct
34
35 use if CONDITION, MODULE => ARGUMENTS;
36
37has no effect unless C<CONDITION> is true. In this case the effect is
38the same as of
39
40 use MODULE ARGUMENTS;
41
42=head1 BUGS
43
44The current implementation does not allow specification of the
45required version of the module.
46
47=head1 AUTHOR
48
49Ilya Zakharevich L<mailto:perl-module-if@ilyaz.org>.
50
51=cut
52