ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/staticperl/perl/lib/if.pm
Revision: 1.1
Committed: Thu Jun 30 14:27:09 2005 UTC (21 years, 3 months ago) by root
Branch: MAIN
CVS Tags: PERL-5-8-7, HEAD
Branch point for: PERL
Log Message:
*** empty log message ***

File Contents

# Content
1 package if;
2
3 our $VERSION = '0.03';
4
5 sub 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
17 sub import { shift; unshift @_, 1; goto &work }
18 sub unimport { shift; unshift @_, 0; goto &work }
19
20 1;
21 __END__
22
23 =head1 NAME
24
25 if - 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
33 The construct
34
35 use if CONDITION, MODULE => ARGUMENTS;
36
37 has no effect unless C<CONDITION> is true. In this case the effect is
38 the same as of
39
40 use MODULE ARGUMENTS;
41
42 =head1 BUGS
43
44 The current implementation does not allow specification of the
45 required version of the module.
46
47 =head1 AUTHOR
48
49 Ilya Zakharevich L<mailto:perl-module-if@ilyaz.org>.
50
51 =cut
52