Fix [perl #32130] Errno.pm must not pass references to "prototype"
Rafael Garcia-Suarez [Mon, 25 Oct 2004 15:31:21 +0000 (15:31 +0000)]
p4raw-id: //depot/perl@23424

ext/Errno/Errno_pm.PL
ext/Errno/t/Errno.t

index fdab9ee..a795cfc 100644 (file)
@@ -377,7 +377,8 @@ sub FIRSTKEY {
 
 sub EXISTS {
     my ($self, $errname) = @_;
-    my $proto = prototype($errname);
+    my $r = ref $errname;
+    my $proto = !$r || $r eq 'CODE' ? prototype($errname) : undef;
     defined($proto) && $proto eq "";
 }
 
index a879cf2..a6b08e0 100755 (executable)
@@ -13,7 +13,7 @@ BEGIN {
 
 use Errno;
 
-print "1..5\n";
+print "1..6\n";
 
 print "not " unless @Errno::EXPORT_OK;
 print "ok 1\n";
@@ -53,3 +53,6 @@ if($s1 ne $s2) {
 }
 
 print "ok 5\n";
+
+eval { exists $!{[]} };
+print $@ ? "not ok 6\n" : "ok 6\n";