[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/ -> if.pm (source)

   1  package if;
   2  
   3  $VERSION = '0.05';
   4  
   5  sub work {
   6    my $method = shift() ? 'import' : 'unimport';
   7    die "Too few arguments to `use if' (some code returning an empty list in list context?)"
   8      unless @_ >= 2;
   9    return unless shift;        # CONDITION
  10  
  11    my $p = $_[0];        # PACKAGE
  12    (my $file = "$p.pm") =~ s!::!/!g;
  13    require $file;        # Works even if $_[0] is a keyword (like open)
  14    my $m = $p->can($method);
  15    goto &$m if $m;
  16  }
  17  
  18  sub import   { shift; unshift @_, 1; goto &work }
  19  sub unimport { shift; unshift @_, 0; goto &work }
  20  
  21  1;
  22  __END__
  23  
  24  =head1 NAME
  25  
  26  if - C<use> a Perl module if a condition holds
  27  
  28  =head1 SYNOPSIS
  29  
  30    use if CONDITION, MODULE => ARGUMENTS;
  31  
  32  =head1 DESCRIPTION
  33  
  34  The construct
  35  
  36    use if CONDITION, MODULE => ARGUMENTS;
  37  
  38  has no effect unless C<CONDITION> is true.  In this case the effect is
  39  the same as of
  40  
  41    use MODULE ARGUMENTS;
  42  
  43  Above C<< => >> provides necessary quoting of C<MODULE>.  If not used (e.g.,
  44  no ARGUMENTS to give), you'd better quote C<MODULE> yourselves.
  45  
  46  =head1 BUGS
  47  
  48  The current implementation does not allow specification of the
  49  required version of the module.
  50  
  51  =head1 AUTHOR
  52  
  53  Ilya Zakharevich L<mailto:perl-module-if@ilyaz.org>.
  54  
  55  =cut
  56  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1