This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix leading spaces in Exporter error message
authorDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Wed, 26 Jun 2019 16:56:06 +0000 (17:56 +0100)
committerDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Wed, 26 Jun 2019 17:01:08 +0000 (18:01 +0100)
The second and subsequent lines when trying to import non-existent
items had a leading space (or whatever $" happened to be).

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

index 0e8775d..19d7645 100644 (file)
@@ -9,7 +9,7 @@ require 5.006;
 our $Debug = 0;
 our $ExportLevel = 0;
 our $Verbose ||= 0;
-our $VERSION = '5.73';
+our $VERSION = '5.74';
 our (%Cache);
 
 sub as_heavy {
index 21b67c1..004815e 100644 (file)
@@ -148,7 +148,7 @@ sub heavy_export {
                    if (!$export_cache->{$sym}) {
                        # accumulate the non-exports
                        push @carp,
-                         qq["$sym" is not exported by the $pkg module\n];
+                         qq["$sym" is not exported by the $pkg module];
                        $oops++;
                    }
                }
@@ -156,7 +156,7 @@ sub heavy_export {
        }
        if ($oops) {
            require Carp;
-           Carp::croak("@{carp}Can't continue after import errors");
+           Carp::croak(join("\n", @carp, "Can't continue after import errors"));
        }
     }
     else {
index d6ac63f..0119975 100644 (file)
@@ -18,7 +18,7 @@ sub ok ($;$) {
 
 BEGIN {
     $test = 1;
-    print "1..31\n";
+    print "1..33\n";
     require Exporter;
     ok( 1, 'Exporter compiled' );
 }
@@ -117,7 +117,6 @@ Testing->import(@imports);
             @imports),
     'import by symbols' );
 
-
 package Yar;
 my @tags = qw(:This :tray);
 Testing->import(@tags);
@@ -128,6 +127,15 @@ Testing->import(@tags);
             @{$Testing::EXPORT_TAGS{@tags}}),
     'import by tags' );
 
+package Err;
+my @missing = qw(first second);
+eval { Testing->import(@missing) };
+my $err = $@;
+
+for my $func (@missing) {
+    ::ok( $@ =~ /^"$func" is not exported by the Testing module$/m,
+          "$func is not exported error message" );
+}
 
 package Arrr;
 Testing->import(qw(!lifejacket));