Add the original source packages to maemo, source lenny
[dh-make-perl] / dev / i386 / libtest-harness-perl / libtest-harness-perl-3.12 / t / lib / if.pm
diff --git a/dev/i386/libtest-harness-perl/libtest-harness-perl-3.12/t/lib/if.pm b/dev/i386/libtest-harness-perl/libtest-harness-perl-3.12/t/lib/if.pm
new file mode 100644 (file)
index 0000000..6971b73
--- /dev/null
@@ -0,0 +1,57 @@
+package if;
+
+$VERSION = '0.05';
+
+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__
+
+=head1 NAME
+
+if - C<use> a Perl module if a condition holds
+
+=head1 SYNOPSIS
+
+  use if CONDITION, MODULE => ARGUMENTS;
+
+=head1 DESCRIPTION
+
+The construct
+
+  use if CONDITION, MODULE => ARGUMENTS;
+
+has no effect unless C<CONDITION> is true.  In this case the effect is
+the same as of
+
+  use MODULE ARGUMENTS;
+
+Above C<< => >> provides necessary quoting of C<MODULE>.  If not used (e.g.,
+no ARGUMENTS to give), you'd better quote C<MODULE> yourselves.
+
+=head1 BUGS
+
+The current implementation does not allow specification of the
+required version of the module.
+
+=head1 AUTHOR
+
+Ilya Zakharevich L<mailto:perl-module-if@ilyaz.org>.
+
+=cut
+