Fwd: [ID 20020703.002] bareword processing bug under 'use strict'
Kay Röpke [Tue, 9 Jul 2002 14:12:10 +0000 (16:12 +0200)]
Message-Id: <184F11EC-9335-11D6-8F80-000393414688@dolphin-services.de>

p4raw-id: //depot/perl@17457

op.c
t/lib/strict/subs

diff --git a/op.c b/op.c
index 0a8c0a2..5a60a1c 100644 (file)
--- a/op.c
+++ b/op.c
@@ -3977,6 +3977,10 @@ Perl_newCONDOP(pTHX_ I32 flags, OP *first, OP *trueop, OP *falseop)
 
     scalarboolean(first);
     if (first->op_type == OP_CONST) {
+        if (first->op_private & OPpCONST_BARE &&
+           first->op_private & OPpCONST_STRICT) {
+           no_bareword_allowed(first);
+       }
        if (SvTRUE(((SVOP*)first)->op_sv)) {
            op_free(first);
            op_free(falseop);
index 88d4afc..4a90809 100644 (file)
@@ -334,3 +334,14 @@ use strict;
 EXPECT
 Bareword "foo" not allowed while "strict subs" in use at - line 4.
 Execution of - aborted due to compilation errors.
+
+########
+
+# ID 20020703.002
+use strict;
+use warnings;
+my $abc = XYZ ? 1 : 0;
+print "$abc\n";
+EXPECT
+Bareword "XYZ" not allowed while "strict subs" in use at - line 5.
+Execution of - aborted due to compilation errors.