Make Exporter::Heavy correctly not warn when exporting a symbol only
Nicholas Clark [Fri, 9 Mar 2007 19:23:57 +0000 (19:23 +0000)]
declared in the export specification. Ensure that the test actually
tests this.

p4raw-id: //depot/perl@30529

lib/Exporter.t
lib/Exporter/Heavy.pm

index 2fbfcfa..1639cc1 100644 (file)
@@ -8,7 +8,7 @@ BEGIN {
 }
 
 # Can't use Test::Simple/More, they depend on Exporter.
-my $test = 1;
+my $test;
 sub ok ($;$) {
     my($ok, $name) = @_;
 
@@ -23,9 +23,12 @@ sub ok ($;$) {
 }
 
 
-print "1..28\n";
-require Exporter;
-ok( 1, 'Exporter compiled' );
+BEGIN {
+    $test = 1;
+    print "1..28\n";
+    require Exporter;
+    ok( 1, 'Exporter compiled' );
+}
 
 
 BEGIN {
index 27774c5..5784b76 100644 (file)
@@ -196,6 +196,7 @@ sub heavy_export {
        (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next)
            unless $sym =~ s/^(\W)//;
        $type = $1;
+       no warnings 'once';
        *{"${callpkg}::$sym"} =
            $type eq '&' ? \&{"${pkg}::$sym"} :
            $type eq '$' ? \${"${pkg}::$sym"} :