【发布时间】:2012-04-01 19:40:08
【问题描述】:
我想知道如何在我的 perl 设置中添加一个新目录来搜索要包含的模块?
当我运行这一行时:
perl -w /var/www/cgi-bin/upload.cgi
我收到以下错误:
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.
我搜索了 Google,显然我应该将 /var/www/cgi-bin 包含为一个文件夹,以便 Perl 可以找到并包含它。
更多信息
这是程序的前几行:
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;
【问题讨论】:
-
什么是config.pm?我在前几行中没有看到这一点。 XUpload 相对于你的程序在哪里?
-
好吧,我尝试将 XFSConfig 重命名为 Config 以为它会修复它,但上面是在我的其他服务器上运行的原始未触及程序,没有问题!!! XUpload 相对于我的程序位于一个名为“Modules”的文件夹中。所以它位于@"/var/www/cgi-bin/Modules/"
-
就像我在回答中所说的那样,
use lib dirname(realpath($0)).'/Modules';
标签: linux perl apache cgi centos