【问题标题】:"Can't locate inc/nph-globals.pl in @INC (@INC contains: ......" ERROR for my PERL site“无法在 @INC 中找到 inc/nph-globals.pl(@INC 包含:......”我的 PERL 站点的错误
【发布时间】:2011-09-11 12:52:35
【问题描述】:

我正在 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 行。

请提出建议。

【问题讨论】:

  • 您的系统上是否有这样的文件,如果有,在哪里?
  • 是的。 nph-globals.pl 文件位于 D:/xampp/htdocs/MYAPPLICATION/cgi-bin/webscripts/inc 文件夹中。

标签: perl xampp


【解决方案1】:

在我看来,在给出此错误的文件上,它无法找到文件 inc/nph-globals.pl。可能在该文件中,您需要指定类似

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

【讨论】:

  • 文件位于 D:/xampp/htdocs/abc/cgi-bin/webscripts/inc/nph-globals.pl – bhushan 与您的代码进行比较..看到区别了吗? #!"D:\xampp\perl\bin\perl.exe" -I D:\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。
  • no no fsbp 是正确的。它只是应用程序名称。就我而言,它是“fsbp”。
  • 我正在执行 hello.cgi 然后它执行正常。所以可以肯定我没有遗漏任何 PERL 配置。我还设置了 ENV 变量“PERL5LIB”的值:“D:\xampp\perl\lib”
【解决方案2】:

我怀疑文件位于

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));

【讨论】:

  • 文件位于 D:/xampp/htdocs/abc/cgi-bin/webscripts/inc/nph-globals.pl
  • 我正在执行 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'; #debugging - uitcomentarieren waneer niet (meer) nodig # 使用 CGI::Carp(fatalsToBrowser); # 使用 Data::Dumper; chdir('../'); # 加载库需要“inc/nph-globals.pl”; code
  • @bhushan,您在我发布的内容中添加了inc。回到我发布的内容,它会起作用。因为你添加了inc,它现在正在寻找.../inc/inc/nph-globals.pl
  • 我通过查看其他一些帖子添加了 INC 变量。当我执行“localhost:8080/MY-APPLICATION/cgi-bin/webscripts/nph-home.pl”时,最初它会在浏览器中显示正确的标题,即页面开始正常工作,但它给我的错误是“错误消息:尝试重新加载 inc/nph-globals.pl 中止。编译在 D 处的要求中失败:/xampp/htdocs/MY-APPLICATION/cgi-bin/webscripts/nph-home.pl 第 11 行。,“。我的第 11 行是“需要'inc/nph-globals.pl';” nph-globals.pl 文件位于“D:/xampp/htdocs/MY-APPLICATION/cgi-bin/inc”文件夹中。请指导。
  • @bhushan,您拥有所需的一般信息,但由于您不断更改路径,因此无法提供具体代码。祝你好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 2012-09-07
  • 2012-06-23
  • 2013-04-25
  • 1970-01-01
  • 2013-05-19
相关资源
最近更新 更多