Re: weirdness in regexps
Robin Houston [Thu, 6 Dec 2001 14:44:01 +0000 (14:44 +0000)]
Message-ID: <20011206144401.A27752@puffinry.freeserve.co.uk>

p4raw-id: //depot/perl@13490

op.c
t/lib/strict/subs

diff --git a/op.c b/op.c
index 85ff67b..d633b47 100644 (file)
--- a/op.c
+++ b/op.c
@@ -2053,6 +2053,13 @@ Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
              desc, sample, sample);
     }
 
+    if (right->op_type == OP_CONST &&
+       cSVOPx(right)->op_private & OPpCONST_BARE &&
+       cSVOPx(right)->op_private & OPpCONST_STRICT)
+    {
+       no_bareword_allowed(right);
+    }
+
     if (!(right->op_flags & OPf_STACKED) &&
        (right->op_type == OP_MATCH ||
        right->op_type == OP_SUBST ||
index ed4fe7a..1e8b058 100644 (file)
@@ -317,3 +317,11 @@ Foo A 1
 Foo B 2
 Foo C 3
 Foo D 4
+########
+
+# Check that barewords on the RHS of a regex match are caught
+use strict;
+"" =~ foo;
+EXPECT
+Bareword "foo" not allowed while "strict subs" in use at - line 4.
+Execution of - aborted due to compilation errors.