static void alias(char* dest_package, char* dest_name, char* src_package, char* src_name) { HV* src_stash = gv_stashpv(src_package, 0); SV* src_glob = *hv_fetch(src_stash, src_name, strlen(src_name), 0); HV* dest_stash = gv_stashpv(dest_package, 0); SV** dest_globP = hv_fetch(dest_stash, dest_name, strlen(dest_name), 1); SV* dest_glob; if (dest_globP) { dest_glob = *dest_globP; } else { // WHAT GOES HERE? dest_glob = ...; } SvSetMagicSV(dest_glob, src_glob); }