void modperl_init(server_rec *base_server, ap_pool_t *p)
void modperl_init(server_rec *base_server, apr_pool_t *p)
void modperl_init(server_rec *base_server, ap_pool_t *p){    server_rec *s;    modperl_srv_config_t *base_scfg =      (modperl_srv_config_t *)        ap_get_module_config(base_server->module_config, &perl_module);    PerlInterpreter *base_perl;    MP_TRACE_d_do(MpSrv_dump_flags(base_scfg,                                   base_server->server_hostname));    if (!MpSrvENABLED(base_scfg)) {        /* how silly */        return;    }    base_perl = modperl_startup(base_server, p);#ifdef USE_ITHREADS    modperl_interp_init(base_server, p, base_perl);    MpInterpBASE_On(base_scfg->mip->parent);#endif    for (s=base_server->next; s; s=s->next) {        MP_dSCFG(s);        PerlInterpreter *perl = base_perl;        MP_TRACE_d_do(MpSrv_dump_flags(scfg, s->server_hostname));        /* if alloc flags is On, virtual host gets its own parent perl */        if (MpSrvPARENT(scfg)) {            perl = modperl_startup(s, p);            MP_TRACE_i(MP_FUNC, "modperl_startup() server=%s\n",                       s->server_hostname);        }#ifdef USE_ITHREADS        if (!MpSrvENABLED(scfg)) {            scfg->mip = NULL;            continue;        }        /* if alloc flags is On or clone flag is On,         *  virtual host gets its own mip         */        if (MpSrvPARENT(scfg) || MpSrvCLONE(scfg)) {            MP_TRACE_i(MP_FUNC, "modperl_interp_init() server=%s\n",                       s->server_hostname);            modperl_interp_init(s, p, perl);        }        /* if we allocated a parent perl, mark it to be destroyed */        if (MpSrvPARENT(scfg)) {            MpInterpBASE_On(scfg->mip->parent);        }        if (!scfg->mip) {            /* since mips are created after merge_server_configs()             * need to point to the base mip here if this vhost             * doesn't have its own             */            scfg->mip = base_scfg->mip;        }#endif /* USE_ITHREADS */    }}