免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2135 | 回复: 7
打印 上一主题 下一主题

请教 如何集成 perl程序文件与 perl 包 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-18 14:15 |只看该作者 |倒序浏览
比如 ,我有一个 main.pl ,它 use sub1.pm 这个包。

如果希望能够正常使用 sub1.pm,那么可以将 sub1.pm 放在 @INC变量所指定的目录。但是我的perl需要拷贝到其它机器,并且不合适放在目标机器的 /usr/local/perl5之类的@INC变量中。

如果将 main.pl 和 sub1.pm放在同一目录下,那么在此目录下工作时,可以找到 sub1.pm。但是如果在其它目录下,使用默认搜索路径时,就会找不到sub1.pm这个包。

我应该怎么样做,才能使 main.pl 可以使用 sub1.pm这个包

谢谢

论坛徽章:
0
2 [报告]
发表于 2006-01-18 15:58 |只看该作者
把sub1.pm与主程序放到一个目录下,在主程序开始加上下面的语句

  1. BEGIN {
  2.       push @INC,$& if ($0=~m#.+/#);
  3. }
  4. use sub1;
复制代码

[ 本帖最后由 怒剑狂啸 于 2006-1-18 15:59 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-01-18 17:28 |只看该作者
您的回答很精彩。

学到两招。第一个是 BEGIN块和END块的用法,第二个是 m#号的用法。

非常感谢。

论坛徽章:
0
4 [报告]
发表于 2006-01-18 19:51 |只看该作者
use lib qw(.);稍文雅点。

论坛徽章:
0
5 [报告]
发表于 2006-02-03 15:46 |只看该作者
原帖由 兰花仙子 于 2006-1-18 19:51 发表
use lib qw(.);稍文雅点。


这个有点问题。

比如我的文件是 /sbin/test.pl ,运行/sbin/test.pl,您的方法没有效果。

论坛徽章:
0
6 [报告]
发表于 2006-02-24 10:10 |只看该作者
如果是在mod_perl的环境下,怎么用啊?
修改@INC的话,因为$& 不一定有值mod_perl会报错
use lib的话,好像没用啊

论坛徽章:
0
7 [报告]
发表于 2006-02-25 00:50 |只看该作者
原帖由 Strange 于 2006-2-24 10:10 发表
如果是在mod_perl的环境下,怎么用啊?
修改@INC的话,因为$& 不一定有值mod_perl会报错
use lib的话,好像没用啊


可以在httpd.conf中加入

  1. <Perl>
  2. use lib /path/to/your/modules;
  3. </Perl>
复制代码

论坛徽章:
0
8 [报告]
发表于 2006-02-27 19:57 |只看该作者
但是如果是虚拟空间上的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP