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

# User Rev Content
1 root 1.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