PP(pp_rv2av) { ... if (SvROK(sv)) { ... av = (AV*)SvRV(sv); ... } else { if (SvTYPE(sv) == SVt_PVAV) { av = (AV*)sv; ... } ... } ... ...return something derived from av... }