免费注册 查看新帖 |

Chinaunix

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

求@INC问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-16 13:06 |只看该作者 |倒序浏览
由于权限问题,不能安装perl模块,只能通过下载模块后,然后perl Makefile.PL  make后将生成的pm模块文件放在用户主目录下的lib文件夹下(假设主目录为/home/aaa),然后对于那些要用到lib目录下包的perl文件,在每个perl文件里通过BEGIN将/home/aaa/lib 添加到@INC里面。
  
    我想问的是如何添加用户自定的模块目录到@INC中呢。望高手赐教!

论坛徽章:
0
2 [报告]
发表于 2008-12-16 13:18 |只看该作者
在perl文件前面写 use lib '绝对路径名' 就可以了。

ps: 你自己说得不是很清楚了吗?

论坛徽章:
0
3 [报告]
发表于 2008-12-16 13:31 |只看该作者
原帖由 odacharlee 于 2008-12-16 13:18 发表
在perl文件前面写 use lib '绝对路径名' 就可以了。

ps: 你自己说得不是很清楚了吗?


大多数是解决问题了的,但是有些是不能解决问题的,拿Boost::Graph这个包来说,它在/home/aaa/lib目录下的结构是这样的。如下(希望能看懂)
------------------------------------------------
lib/
    Boost/
             Graph.pm
             Graph/
                       Directed.pm
                       Undirected.pm
----------------------------------------------------------------------------
其中在Graph.pm的前己行如下:
package Boost::Graph;
our $VERSION = '1.4';
#####################################################################################

# Graph.pm

# David Burdick, 11/08/2004

#

# The main module for the Perl Boost interface

#####################################################################################

use strict;
use Boost::Graph::Directed;
use Boost::Graph::Undirected;

虽然我在用自己的程序中能找到Boost::Graph这个包,但Boost::Graph这个在
  1. use Boost::Graph::Directed
复制代码
就会出现错误:
错误代码如下:
  1. Can't locate loadable object for module Boost::Graph::Directed in @INC
复制代码


所以要提上面的问题,清赐教

论坛徽章:
0
4 [报告]
发表于 2008-12-16 13:36 |只看该作者
use lib '/home/aaa/lib';

应该就没问题的,如果出问题了,找找原因

论坛徽章:
0
5 [报告]
发表于 2008-12-16 13:49 |只看该作者
原帖由 cobrawgl 于 2008-12-16 13:36 发表
use lib '/home/aaa/lib';

应该就没问题的,如果出问题了,找找原因


还是有问题,继续寻找答案,

论坛徽章:
0
6 [报告]
发表于 2008-12-16 14:13 |只看该作者
要不把你的 code 贴出来瞅瞅

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2008-12-16 14:51 |只看该作者
原帖由 odacharlee 于 2008-12-16 13:18 发表
在perl文件前面写 use lib '绝对路径名' 就可以了。


bad idea

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
8 [报告]
发表于 2008-12-16 14:54 |只看该作者
原帖由 riverlee2008 于 2008-12-16 13:06 发表
由于权限问题,不能安装perl模块,只能通过下载模块后,然后perl Makefile.PL  make后将生成的pm模块文件放在用户主目录下的lib文件夹下(假设主目录为/home/aaa),然后对于那些要用到lib目录下包的perl文件, ...

你可以看下 perlrun 的 ENVIRONMENT 部分,那里有些环境变量专门针对你的这种情况。

论坛徽章:
0
9 [报告]
发表于 2008-12-16 19:24 |只看该作者

  1. BEGIN {
  2.    unshift @INC,"your_lib_path";
  3. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP