summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2004-12-03 20:38:37 +0000
committerNicholas Clark <nick@ccl4.org>2004-12-03 20:38:37 +0000
commit7a1e2023d90d879c7a6110f7be3e3c6e22bddc33 (patch)
treedc26e3ba930c2df5b59c861cbc2aacb58de290a6
parent3792a11b372a7ebb936a206658c45be7271a102f (diff)
downloadperl-7a1e2023d90d879c7a6110f7be3e3c6e22bddc33.tar.gz
Remove double checking of acceptable switches on tr/// ops.
p4raw-id: //depot/perl@23607
-rw-r--r--toke.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/toke.c b/toke.c
index 1b8de1985d..d79c1230ba 100644
--- a/toke.c
+++ b/toke.c
@@ -6665,15 +6665,23 @@ S_scan_trans(pTHX_ char *start)
}
complement = del = squash = 0;
- while (strchr("cds", *s)) {
- if (*s == 'c')
+ while (1) {
+ switch (*s) {
+ case 'c':
complement = OPpTRANS_COMPLEMENT;
- else if (*s == 'd')
+ break;
+ case 'd':
del = OPpTRANS_DELETE;
- else if (*s == 's')
+ break;
+ case 's':
squash = OPpTRANS_SQUASH;
+ break;
+ default:
+ goto no_more;
+ }
s++;
}
+ no_more:
New(803, tbl, complement&&!del?258:256, short);
o = newPVOP(OP_TRANS, 0, (char*)tbl);