| if documentation | Contained in the if distribution. |
if - use a Perl module if a condition holds
use if CONDITION, MODULE => ARGUMENTS;
The construct
use if CONDITION, MODULE => ARGUMENTS;
has no effect unless CONDITION is true. In this case the effect is
the same as of
use MODULE ARGUMENTS;
Above => provides necessary quoting of MODULE. If not used (e.g.,
no ARGUMENTS to give), you'd better quote MODULE yourselves.
The current implementation does not allow specification of the required version of the module.
Ilya Zakharevich mailto:ilyaz@cpan.org.
| if documentation | Contained in the if distribution. |
package if; $VERSION = '0.0601'; sub work { my $method = shift() ? 'import' : 'unimport'; die "Too few arguments to `use if' (some code returning an empty list in list context?)" unless @_ >= 2; return unless shift; # CONDITION my $p = $_[0]; # PACKAGE (my $file = "$p.pm") =~ s!::!/!g; require $file; # Works even if $_[0] is a keyword (like open) my $m = $p->can($method); goto &$m if $m; } sub import { shift; unshift @_, 1; goto &work } sub unimport { shift; unshift @_, 0; goto &work } 1; __END__