This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove ‘Useless use of "re" pragma’ warning
authorFather Chrysostomos <sprout@cpan.org>
Sat, 4 Feb 2012 07:32:32 +0000 (23:32 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Sat, 4 Feb 2012 07:32:32 +0000 (23:32 -0800)
It’s wrong.

$ ./perl -Ilib -le 'use re; print re::regmust(qr/foo/)'
Useless use of "re" pragma at -e line 1.
foo

Useless, eh?  OK, then:

$ ./perl -Ilib -le 'print re::regmust(qr/foo/)'
Undefined subroutine &re::regmust called at -e line 1.

ext/re/re.pm
ext/re/t/re.t

index 223a4cd..9111129 100644 (file)
@@ -108,10 +108,6 @@ sub _load_unload {
 sub bits {
     my $on = shift;
     my $bits = 0;
-    unless (@_) {
-       require Carp;
-       Carp::carp("Useless use of \"re\" pragma"); 
-    }
    ARG:
     foreach my $idx (0..$#_){
         my $s=$_[$idx];
index 8e06ef5..5fbf3fd 100644 (file)
@@ -10,7 +10,7 @@ BEGIN {
 
 use strict;
 
-use Test::More tests => 13;
+use Test::More tests => 14;
 require_ok( 're' );
 
 # setcolor
@@ -72,3 +72,12 @@ sub Tgetent {
 sub Tputs {
        return $_[1];
 }
+
+package main;
+
+{
+  my $w;
+  local $SIG{__WARN__} = sub { warn shift; ++$w };
+  re->import();
+  is $w, undef, 'no warning for "use re;" (which is not useless)';
+}