免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: illidanee
打印 上一主题 下一主题

求助. apache @INC 不能修改 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-11-28 15:17 |只看该作者
兰花仙子 发表于 2012-11-28 11:18
上个月刚帮朋友公司写了个modperl项目

startup.pl内容:



目前我使用static方式调用.可以正常运行了,但是如果是用Dynamic不管是在http.conf还是代码%ENV中手动添加library路径其报错都是can`t find  pm  in  @INC(/usr/httpd/cgi-bin). @INC目录始终不变.不知道什么原因了.


请问仙子,是不是你们项目中是不是所有的模块都写在了startup.pl中呢,我的是在pm中单独写的.我知道写在startup.pl中的模块汇在apache http 服务器启动的时候就加载了,但是还有没有其他什么区别和影响呢?

论坛徽章:
0
12 [报告]
发表于 2012-11-28 17:02 |只看该作者
illidanee 发表于 2012-11-28 15:17
目前我使用static方式调用.可以正常运行了,但是如果是用Dynamic不管是在http.conf还是代码%ENV中手动 ...


还有个区别是,比如你有A.pm和B.pm,假设启动apache后,A和B都在同一进程。
如果在startup.pl里use C了,那么A和B都会加载C。
如果你没写在startup.pl里,那么A里写了use C就会加载C,B里没有use C,就不会加载C。
虽然是同一进程,但B的package space不会有C的东西,比如export出的变量等。

论坛徽章:
0
13 [报告]
发表于 2012-11-28 17:05 |只看该作者
楼主辛苦了,鼓励一下

论坛徽章:
0
14 [报告]
发表于 2012-11-29 11:20 |只看该作者
兰花仙子 发表于 2012-11-28 17:02
还有个区别是,比如你有A.pm和B.pm,假设启动apache后,A和B都在同一进程。
如果在startup.pl里use C了 ...



奥,原来是这样.十分感谢仙子..:wink:

      还要问下仙子>

        1.写在startup.pl中是不是比写在pm中效率高些呢?如何察看pm的执行效率(执行的时间或者内存占用之类)?
        2.在项目中哪些模块应该写在startup.pl中,哪些应该写在pm中呢.

论坛徽章:
0
15 [报告]
发表于 2012-11-29 11:21 |只看该作者
hansion3406 发表于 2012-11-28 17:05
楼主辛苦了,鼓励一下




论坛徽章:
0
16 [报告]
发表于 2012-11-29 12:10 |只看该作者
illidanee 发表于 2012-11-29 11:20
奥,原来是这样.十分感谢仙子..

      还要问下仙子>


通常认为startup.pl里加载效率高点,因为它是预加载的。至于性能高出多少比率没统计过。
一般那些公共的package放在startup.pl里,局部或私有化的不需要放。

论坛徽章:
0
17 [报告]
发表于 2012-11-30 10:54 |只看该作者
虽然使用另一种方式解决了问题,但是还是学习到了很多东西.感谢大家.知识积累多了,我相信问题就会慢慢解决了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP