Re: [PATCH lib/autouse.pm t/pragma/autouse.t] (was Re: [ID 20010528.001] use autouse...
Michael G. Schwern [Wed, 30 May 2001 14:39:06 +0000 (15:39 +0100)]
Message-ID: <20010530143906.E670@blackrider.blackstar.co.uk>

p4raw-id: //depot/perl@10318

lib/autouse.pm
t/pragma/autouse.t

index 15335b7..d320195 100644 (file)
@@ -39,7 +39,7 @@ sub import {
 
        my $closure_import_func = $func;        # Full name
        my $closure_func = $func;               # Name inside package
-       my $index = index($func, '::');
+       my $index = rindex($func, '::');
        if ($index == -1) {
            $closure_import_func = "${callpkg}::$func";
        } else {
@@ -96,21 +96,33 @@ autouse - postpone load of modules until a function is used
 
 If the module C<Module> is already loaded, then the declaration
 
-  use autouse 'Module' => qw(func1 func2($;$) Module::func3);
+  use autouse 'Module' => qw(func1 func2($;$));
 
 is equivalent to
 
   use Module qw(func1 func2);
 
-if C<Module> defines func2() with prototype C<($;$)>, and func1() and
-func3() have no prototypes.  (At least if C<Module> uses C<Exporter>'s
-C<import>, otherwise it is a fatal error.)
+if C<Module> defines func2() with prototype C<($;$)>, and func1() has
+no prototypes.  (At least if C<Module> uses C<Exporter>'s C<import>,
+otherwise it is a fatal error.)
 
 If the module C<Module> is not loaded yet, then the above declaration
-declares functions func1() and func2() in the current package, and
-declares a function Module::func3().  When these functions are called,
-they load the package C<Module> if needed, and substitute themselves
-with the correct definitions.
+declares functions func1() and func2() in the current package.  When
+these functions are called, they load the package C<Module> if needed,
+and substitute themselves with the correct definitions.
+
+=begin _deprecated
+
+   use Module qw(Module::func3);
+
+will work and is the equivalent to:
+
+   use Module qw(func3);
+
+Its not a very useful feature and has been deprecated.
+
+=end _deprecated
+
 
 =head1 WARNING
 
index 3dc5483..ecc1289 100644 (file)
@@ -6,12 +6,17 @@ BEGIN {
 }
 
 use Test;
-BEGIN { plan tests => 9; }
+BEGIN { plan tests => 10; }
 
 BEGIN {
     require autouse;
     eval {
-        "autouse"->import('List::Util' => 'List::Util::first');
+        "autouse"->import('List::Util' => 'List::Util::first(&@)');
+    };
+    ok( !$@ );
+
+    eval {
+        "autouse"->import('List::Util' => 'Foo::min');
     };
     ok( $@, qr/^autouse into different package attempted/ );