diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-07-11 19:11:07 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-07-11 19:11:07 +0000 |
commit | ed7ab888f26e9b2a3bcf98806b630e993179f8b4 (patch) | |
tree | b48a46808db67c5d91844064dea0ae8a4c692a27 /op.c | |
parent | 51371543ca1a75ed152020ad0846b5b8cf11c32f (diff) | |
download | perl-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.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -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 |