diff --git a/pp_hot.c b/pp_hot.c index c56d7976e98d..1d6e002fb13e 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -957,7 +957,7 @@ PP(pp_multiconcat) /* Note that we iterate the loop nargs+1 times: to append nargs * arguments and nargs+1 constant strings. For example, "-$a-$b-" */ - svpv_p = svpv_base - 1; + svpv_p = svpv_base; for (;;) { SSize_t len = (const_lens++)->ssize; @@ -969,7 +969,7 @@ PP(pp_multiconcat) const_pv += len; } - if (++svpv_p == svpv_end) + if (svpv_p == svpv_end) break; /* append next arg */ @@ -997,6 +997,7 @@ PP(pp_multiconcat) targ_pv += len; } + ++svpv_p; } }