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 */ } } }