This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Merge gv_AVadd(), gv_HVadd() and gv_SVadd() into gv_add_by_type().
[perl5.git] / lib / if.pm
index 0795dee..5f6bcc8 100644 (file)
--- a/lib/if.pm
+++ b/lib/if.pm
@@ -1,14 +1,16 @@
 package if;
 
-our $VERSION = '0.02';
+$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
-  eval "require $p" or die;    # Adds .pm etc if needed
-
+  (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;
 }
@@ -38,6 +40,9 @@ 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