Remove use of caller() in strict.pm, and tighten Safe compartment
Hugo van der Sanden [Thu, 10 Oct 2002 09:51:24 +0000 (09:51 +0000)]
for Storable tests to match.

p4raw-id: //depot/perl@17986

ext/Storable/t/code.t
lib/strict.pm
lib/strict.t

index 1912cd0..c8b2ca1 100644 (file)
@@ -239,7 +239,7 @@ ok(prototype($thawed->[4]), prototype($obj[0]->[4]));
 {
     my $safe = new Safe;
     # because of opcodes used in "use strict":
-    $safe->permit(qw(:default require caller));
+    $safe->permit(qw(:default require));
     local $Storable::Eval = sub { $safe->reval(shift) };
 
     $freezed = freeze $obj[0]->[1];
index 2eb756c..d1479ed 100644 (file)
@@ -16,12 +16,8 @@ sub bits {
         $bits |= $bitmask{$s} || 0;
     }
     if (@wrong) {
-        my $useno = {
-         __PACKAGE__.'::import' => 'use',
-         __PACKAGE__.'::unimport' => 'no'
-        }->{ (caller(1))[3] };
         require Carp;
-        Carp::croak("Don't know how to '$useno ".__PACKAGE__." qw(@wrong)'");
+        Carp::croak("Unknown 'strict' tag(s) '@wrong'");
     }
     $bits;
 }
index a95b563..37bb4b3 100644 (file)
@@ -100,17 +100,17 @@ for (@prgs){
 }
 
 eval qq(use strict 'garbage');
-print +($@ =~ /^Don't know how to 'use strict qw\(garbage\)/)
+print +($@ =~ /^Unknown 'strict' tag\(s\) 'garbage'/)
        ? "ok ".++$i."\n" : "not ok ".++$i."\t# $@";
 
 eval qq(no strict 'garbage');
-print +($@ =~ /^Don't know how to 'no strict qw\(garbage\)/)
+print +($@ =~ /^Unknown 'strict' tag\(s\) 'garbage'/)
        ? "ok ".++$i."\n" : "not ok ".++$i."\t# $@";
 
 eval qq(use strict qw(foo bar));
-print +($@ =~ /^Don't know how to 'use strict qw\(foo bar\)/)
+print +($@ =~ /^Unknown 'strict' tag\(s\) 'foo bar'/)
        ? "ok ".++$i."\n" : "not ok ".++$i."\t# $@";
 
 eval qq(no strict qw(foo bar));
-print +($@ =~ /^Don't know how to 'no strict qw\(foo bar\)/)
+print +($@ =~ /^Unknown 'strict' tag\(s\) 'foo bar'/)
        ? "ok ".++$i."\n" : "not ok ".++$i."\t# $@";