&引用;Can';t在@inc中查找inc/nph-globals.pl(@inc包含:……”我的PERL站点错误

&引用;Can';t在@inc中查找inc/nph-globals.pl(@inc包含:……”我的PERL站点错误,perl,xampp,Perl,Xampp,我正在XAMPP本地服务器上设置perl站点。我已将代码放置在适当的位置,并根据路径更改所有.pl和.cgi文件的第一行。即 #!“D:\xampp\perl\bin\perl.exe” 就我的情况来说,我还是会犯这样的错误 在中找不到inc/nph-globals.pl @INC(@INC)包含: D:/xampp/perl/site/lib/ D:/xampp/perl/lib D:/xampp/perl/site/lib。 D:/xampp/apache)在 D:/xampp/htdocs

我正在XAMPP本地服务器上设置perl站点。我已将代码放置在适当的位置,并根据路径更改所有
.pl
.cgi
文件的第一行。即

#!“D:\xampp\perl\bin\perl.exe”

就我的情况来说,我还是会犯这样的错误

在中找不到inc/nph-globals.pl @INC(@INC)包含: D:/xampp/perl/site/lib/ D:/xampp/perl/lib D:/xampp/perl/site/lib。 D:/xampp/apache)在 D:/xampp/htdocs//cgi-bin/webscripts/nph-home.pl 第9行


请建议。

在我看来,在给出此错误的文件上,它找不到inc/nph-globals.pl文件。可能在该文件中,您需要指定如下内容

#!"D:\xampp\perl\bin\perl.exe" -I <path_to_inc_nph-globals.pl>
#!“D:\xampp\perl\bin\perl.exe”-I

我怀疑该文件位于

D:/xampp/htdocs/cgi-bin/webscripts/inc/nph-globals.pl
如果是这样,它就不工作了,因为脚本错误地假定当前工作目录设置为包含执行脚本的目录,即

D:/xampp/htdocs/cgi-bin/webscripts
以下代码将解决该问题:

use lib 'D:/xampp/htdocs/cgi-bin/webscripts';
或者一般来说

use Cwd            qw( realpath );
use File::Basename qw( dirname );

use lib dirname(realpath($0));

您的系统中有这样的文件吗?如果有,在哪里?是的。nph-globals.pl文件位于D:/xampp/htdocs/MYAPPLICATION/cgi-bin/webscripts/inc文件夹中。文件位于D:/xampp/htdocs/abc/cgi-bin/webscripts/inc/nph-globals.plI正在执行nph-home.pl文件。下面是代码中断的前8行。
code
\!“D:\xampp\perl\bin\perl.exe”-id:\xampp\htdocs\fsbp\cgi-bin\webscripts\inc使用lib'D:/xampp/htdocs/fsbp/cgi-bin/webscripts/inc';#调试-uitcomentarieren-waneer-niet(meer)nodig#使用cgi::Carp(fatalsToBrowser);#使用Data::Dumper;chdir(“../”)##libs loaded require'inc/nph globals.pl'
code
@bhushan,您在我发布的内容中添加了
inc
。返回到我发布的内容,它就会工作。因为您添加了
inc
,它现在正在查找
../inc/nph globals
,我通过查看其他一些帖子添加了inc变量。当我执行“然后,最初它在浏览器中显示正确的标题,即页面开始正常工作,但它给我的错误是“错误消息:尝试重新加载inc/nph-globals.pl已中止。在D:/xampp/htdocs/MY-APPLICATION/cgi-bin/webscripts/nph-home.pl第11行的require中编译失败。”,其中我的第11行是“require'inc/nph globals.pl'nph-globals.pl文件位于“D:/xampp/htdocs/MY-APPLICATION/cgi-bin/inc”中文件夹。请引导。@bhushan,您拥有所需的一般信息,并且由于您不断更改路径,因此无法提供特定代码。Good luck.file位于D:/xampp/htdocs/abc/cgi bin/webscripts/inc/nph-globals.pl–bhushan与您的代码进行比较。看到区别了吗?#!“D:\xampp\perl\bin\perl.exe”-id:\xampp\htdocs\fsbp\cgi-bin\webscripts\inc#!“D:\xampp\perl\bin\perl.exe”是perl安装的路径,我们需要将其添加到每个文件的第一行,“D:\xampp\htdocs\fsbp\cgi-bin\webscripts\inc”是执行文件的下一行中使用的文件的路径,即nph-home.pl->
code
require'inc/nph globals.pl';
code
我的意思是其中一个路径称为abc,另一个路径称为fsbp。没有任何fsbp是正确的。它只是应用程序名。它的“fsbp”在我的例子中,我正在执行hello.cgi,然后它会正确执行。因此,我确信我没有丢失任何PERL配置。我还设置了ENV变量“PERL5LIB”,其值为:“D:\xampp\PERL\lib”