Change 31420 by [EMAIL PROTECTED] on 2007/06/19 12:13:20

        Subject: [perl #43242] "use base" breaks code containing peculiarly 
named constant 
        From: Martin Becker (via RT) <[EMAIL PROTECTED]>
        Date: Mon, 18 Jun 2007 09:48:54 -0700
        Message-ID: <[EMAIL PROTECTED]>
        
        plus a test case

Affected files ...

... //depot/perl/lib/base.pm#35 edit
... //depot/perl/lib/base/t/base.t#5 edit

Differences ...

==== //depot/perl/lib/base.pm#35 (text) ====
Index: perl/lib/base.pm
--- perl/lib/base.pm#34~31163~  2007-05-07 06:38:24.000000000 -0700
+++ perl/lib/base.pm    2007-06-19 05:13:20.000000000 -0700
@@ -2,7 +2,7 @@
 
 use strict 'vars';
 use vars qw($VERSION);
-$VERSION = '2.09';
+$VERSION = '2.10';
 
 # constant.pm is slow
 sub SUCCESS () { 1 }
@@ -18,7 +18,7 @@
 sub has_fields {
     my($base) = shift;
     my $fglob = ${"$base\::"}{FIELDS};
-    return( ($fglob && *$fglob{HASH}) ? 1 : 0 );
+    return( ($fglob && 'GLOB' eq ref($fglob) && *$fglob{HASH}) ? 1 : 0 );
 }
 
 sub has_version {

==== //depot/perl/lib/base/t/base.t#5 (text) ====
Index: perl/lib/base/t/base.t
--- perl/lib/base/t/base.t#4~29090~     2006-10-23 01:51:02.000000000 -0700
+++ perl/lib/base/t/base.t      2007-06-19 05:13:20.000000000 -0700
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 use strict;
-use Test::More tests => 11;
+use Test::More tests => 12;
 
 use_ok('base');
 
@@ -85,3 +85,9 @@
          'Base class empty error message');
 
 }
+
+package Schlozhauer;
+use constant FIELDS => 6;
+package Basilisco;
+eval q{ use base 'Schlozhauer' };
+::is( $@, '', 'Can coexist with a FIELDS constant' );
End of Patch.

Reply via email to