SV* get_data() { AV * results; I32 nr = 0; int n; results = newAV(); for (n = 0; n <= nr; n++) { HV * rh = newHV(); { SV * val = newSVpv("mouse", 0); hv_store(rh, "mickey", 6, val, 0); } { SV * val = newSVpv("kong", 0); hv_store(rh, "donkey", 6, val, 0); } av_push(results, newRV_noinc((SV*)rh)); } return newRV_noinc((SV*)results); }