merge_table_overlap_item(vars);
void *modperl_config_srv_merge(apr_pool_t *p, void *basev, void *addv){    int i;    modperl_config_srv_t        *base = (modperl_config_srv_t *)basev,        *add  = (modperl_config_srv_t *)addv,        *mrg  = modperl_config_srv_new(p);    MP_TRACE_d(MP_FUNC, "basev==0x%lx, addv==0x%lx\n",                (unsigned long)basev, (unsigned long)addv);    merge_item(modules);    merge_item(PerlModule);    merge_item(PerlRequire);    merge_table_overlap_item(vars);    merge_table_overlap_item(SetEnv);    merge_table_overlap_item(PassEnv);     merge_item(threaded_mpm);    merge_item(server);#ifdef USE_ITHREADS    merge_item(interp_pool_cfg);    merge_item(interp_scope);#else    merge_item(perl);#endif    if (add->argv->nelts == 2 &&        strEQ(((char **)add->argv->elts)[1], "+inherit"))    {        /* only inherit base PerlSwitches if explicitly told to */        mrg->argv = base->argv;    }    else {        mrg->argv = add->argv;    }    mrg->flags = modperl_options_merge(p, base->flags, add->flags);    /* XXX: check if Perl*Handler is disabled */    for (i=0; i < MP_HANDLER_NUM_PER_SRV; i++) {        merge_handlers(MpSrvMERGE_HANDLERS, handlers_per_srv[i]);    }    for (i=0; i < MP_HANDLER_NUM_FILES; i++) {        merge_handlers(MpSrvMERGE_HANDLERS, handlers_files[i]);    }    for (i=0; i < MP_HANDLER_NUM_PROCESS; i++) {        merge_handlers(MpSrvMERGE_HANDLERS, handlers_process[i]);    }    for (i=0; i < MP_HANDLER_NUM_PRE_CONNECTION; i++) {        merge_handlers(MpSrvMERGE_HANDLERS, handlers_pre_connection[i]);    }    for (i=0; i < MP_HANDLER_NUM_CONNECTION; i++) {        merge_handlers(MpSrvMERGE_HANDLERS, handlers_connection[i]);    }    if (modperl_is_running()) {        if (modperl_init_vhost(mrg->server, p, NULL) != OK) {            exit(1); /*XXX*/        }    }#ifdef USE_ITHREADS    merge_item(mip);#endif    return mrg;}