1package if;
2
3our $VERSION = '0.03';
4
5sub work {
6  my $method = shift() ? 'import' : 'unimport';
7  return unless shift;		# CONDITION
8
9  my $p = $_[0];		# PACKAGE
10  (my $file = "$p.pm") =~ s!::!/!g;
11  require $file or die;
12
13  my $m = $p->can($method);
14  goto &$m if $m;
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
53