如何编辑@INC条目包括模块的一个新的目录 [英] how to edit @INC entry to include a new directory for modules

查看:1148
本文介绍了如何编辑@INC条目包括模块的一个新的目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道我怎么能在我的Perl设置添加一个新的目录也被搜索到包含的模块?

当我运行这行:

  perl的-w /var/www/cgi-bin/upload.cgi

我收到以下错误:

  @INC中无法找到config.pm(@INC包含:/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi的/ usr /lib/perl5/site_perl/5.8.8 / usr / lib目录/的perl5 / site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 / usr / lib目录/的perl5 / vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8)在/var/www/cgi-bin/upload.cgi 5号线。
BEGIN失败 - 编译在/var/www/cgi-bin/upload.cgi 5行终止。

和我搜索谷歌,显然我应该包括 /无功/网络/ cgi-bin目录作为一个文件夹,以便Perl可以找到它,包括它。

更多信息

下面是方案的最上面几行:

 使用严格的;
使用库'。;
使用XFSConfig; #此固定用-I命令行开关
使用XUpload; #这将返回是一个错误!
使用CGI ::鲤鱼QW(fatalsToBrowser);
使用CGI;
使用LWP :: UserAgent的;


解决方案

有几种方法,其中许多是覆盖<一个href=\"http://search.cpan.org/perldoc?perlfaq8#How_do_I_add_a_directory_to_my_include_path_%28@INC%29_at_runtime?\"><$c$c>perlfaq8:如何添加一个目录来我包含在运行时路径?

1)使用 -I 命令行开关

  perl的-w -I在/ var / WWW / cgi-bin目录/var/www/cgi-bin/upload.cgi

2)使用 PERLLIB PERL5LIB 环境变量

 出口PERLLIB =$ PERLLIB:在/ var / WWW / cgi-bin目录
perl的-w /var/www/cgi-bin/upload.cgiPERL5LIB =$ PERL5LIB:在/ var / WWW / cgi-bin目录perl的-w /var/www/cgi-bin/upload.cgi

3)使用 LIB 编译在code

 #附近/var/www/cgi-bin/upload.cgi上方某处
使用严格的;
使用警告;
使用库'的/ var / WWW / cgi-bin目录;

I was wondering how I can add a new directory in my perl settings to also be searched for modules to be included?

When I run this line :

perl -w /var/www/cgi-bin/upload.cgi

I get the following error :

Can't locate config.pm in @INC (@INC contains: . /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8) at /var/www/cgi-bin/upload.cgi line 5.
BEGIN failed--compilation aborted at /var/www/cgi-bin/upload.cgi line 5.

And I searched Google and apparently I should include /var/www/cgi-bin as a folder so that Perl can locate it and include it.

MORE INFO

here are the top few lines of the program :

use strict;
use lib '.';
use XFSConfig; #this was fixed by using -I command line switch
use XUpload; # this returns as an error!!!
use CGI::Carp qw(fatalsToBrowser);
use CGI;
use LWP::UserAgent;

解决方案

There are several ways, many of them covered in perlfaq8: How do I add a directory to my include path at runtime?

1) Use the -I command line switch

perl -w -I/var/www/cgi-bin /var/www/cgi-bin/upload.cgi

2) Use the PERLLIB or PERL5LIB environment variables

export PERLLIB="$PERLLIB:/var/www/cgi-bin"
perl -w /var/www/cgi-bin/upload.cgi

PERL5LIB="$PERL5LIB:/var/www/cgi-bin" perl -w /var/www/cgi-bin/upload.cgi

3) use the lib pragma in your code

# somewhere near the top of  /var/www/cgi-bin/upload.cgi
use strict;
use warnings;
use lib '/var/www/cgi-bin';

这篇关于如何编辑@INC条目包括模块的一个新的目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆