}
void
-Perl_do_join(pTHX_ register SV *sv, SV *del, register SV **mark, register SV **sp)
+Perl_do_join(pTHX_ register SV *sv, SV *delim, register SV **mark, register SV **sp)
{
dVAR;
SV ** const oldmark = mark;
register STRLEN len;
STRLEN delimlen;
- (void) SvPV_const(del, delimlen); /* stringify and get the delimlen */
+ (void) SvPV_const(delim, delimlen); /* stringify and get the delimlen */
/* SvCUR assumes it's SvPOK() and woe betide you if it's not. */
mark++;
if (delimlen) {
for (; items > 0; items--,mark++) {
- sv_catsv(sv,del);
+ sv_catsv(sv,delim);
sv_catsv(sv,*mark);
}
}
RETURN;
}
- if (! SvTIED_mg((SV*)keys, PERL_MAGIC_tied))
+ if (! SvTIED_mg((SV*)keys, PERL_MAGIC_tied)
+ && ! SvTIED_mg((SV*)keys, PERL_MAGIC_regdata_names))
+ {
i = HvKEYS(keys);
+ }
else {
i = 0;
while (hv_iternext(keys)) i++;