summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-07-11 19:11:07 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-07-11 19:11:07 +0000
commited7ab888f26e9b2a3bcf98806b630e993179f8b4 (patch)
treeb48a46808db67c5d91844064dea0ae8a4c692a27 /op.c
parent51371543ca1a75ed152020ad0846b5b8cf11c32f (diff)
downloadperl-ed7ab888f26e9b2a3bcf98806b630e993179f8b4.tar.gz
change#3612 was buggy and failed to build Tk; applied Ilya's
remedy and related tests via private mail p4raw-link: @3612 on //depot/perl: b162f9ead0a98db35cdcfc8c889e344c040c8d8e p4raw-id: //depot/perl@3664
Diffstat (limited to 'op.c')
-rw-r--r--op.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/op.c b/op.c
index eb4a0ed44b..858bf00f8b 100644
--- a/op.c
+++ b/op.c
@@ -5650,17 +5650,21 @@ Perl_peep(pTHX_ register OP *o)
if (cSVOPo->op_private & OPpCONST_STRICT)
no_bareword_allowed(o);
/* FALL THROUGH */
- case OP_CONCAT:
- case OP_JOIN:
case OP_UC:
case OP_UCFIRST:
case OP_LC:
case OP_LCFIRST:
+ if ( o->op_next && o->op_next->op_type == OP_STRINGIFY
+ && !(o->op_next->op_private & OPpTARGET_MY) )
+ null(o->op_next);
+ o->op_seq = PL_op_seqmax++;
+ break;
+ case OP_CONCAT:
+ case OP_JOIN:
case OP_QUOTEMETA:
if (o->op_next && o->op_next->op_type == OP_STRINGIFY) {
if (o->op_next->op_private & OPpTARGET_MY) {
- if ((o->op_type == OP_CONST) /* no target */
- || (o->op_flags & OPf_STACKED) /* chained concats */
+ if ((o->op_flags & OPf_STACKED) /* chained concats */
|| (o->op_type == OP_CONCAT
/* Concat has problems if target is equal to right arg. */
&& (((LISTOP*)o)->op_first->op_sibling->op_type