for (i = 0; i <= av_len(padn); ++i) { HE *hent; SV **nameptr = av_fetch(padn, i, 0); if (nameptr != NULL && SvPOKp(*nameptr) && (hent = hv_fetch_ent(hvn, *nameptr, 0, 0)) != NULL) { /* do something interesting with the value from hent */ } } #### for (i = 0; i <= av_len(padn); ++i) { HE *hent; SV **nameptr = av_fetch(padn, i, 0); if (nameptr != NULL && SvPOKp(*nameptr)) { SV **field; U32 len; const char *name = SvPV(*nameptr, len); if ((field = hv_fetch(hvn, name, len, 0)) != NULL) { /* do something interesting with *field */ } } } #### for (i = 0; i <= av_len(padn); ++i) { SV **nameptr = av_fetch(padn, i, 0); if (nameptr != NULL && SvPOKp(*nameptr)) { SV **field; const char *name = SvPV_nolen(*nameptr); if ((field = hv_fetch(hvn, name, strlen(name), 0)) != NULL) { /* do something interesting with *field */ } } }