gpt4 book ai didi

Perl 模块未找到,但已安装

转载 作者:行者123 更新时间:2023-12-04 05:58:00 25 4
gpt4 key购买 nike

我通过 cpan 安装了 Perl 模块 HTML::Template。 Perl 本身可以识别 Template 模块,但是当我尝试将其用作 Perl CGI 脚本时,它会触发以下错误:

$ cat /var/log/httpd/error_log

[Tue Feb 14 11:28:27 2012] [error] [client 127.0.0.1] Can't locate HTML/Template.pm in @INC (@INC contains: /root/perl5/lib/perjl5/ /usr/local/lib/perl5 /usr/$
[Tue Feb 14 11:28:27 2012] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at /var/www/cgi-bin/index.pl line 4.
[Tue Feb 14 11:28:27 2012] [error] [client 127.0.0.1] Premature end of script headers: index.pl
我的 Perl 脚本(index.pl)如下:
#!/usr/bin/perl -w

use lib "/root/perl5/lib/perjl5"; # is it the correct way to include libs?
use HTML::Template; # error line


print "Content-type: text/html\r\n\r\n";
print "Hello there!<br />\nJust testing .<br />\n";

for ($i=0; $i<10; $i++)
{
print $i."<br />";
}
如果我加载脚本 http://localhost/cgi-bin/index.pl 它会返回 500 内部服务器错误。
该模块已安装并位于/root/perl5/lib/perl5/HTML/Template.pm
事实上 $ perldoc perllocal返回:
[...]
[1mMon Feb 13 16:43:34 2012: "Module" HTML::Template[0m
· "installed into: /root/perl5/lib/perl5"

· "LINKTYPE: dynamic"

· "VERSION: 2.6"

· "EXE_FILES: "

[...]
它正确安装了吗?
如果我输入 $ perl -e "use HTML::Template没有错误是返回
我正在使用 Fedora 16

Linux version 3.2.5-3.fc16.i686(mockbuild@x86-06.phx2.fedoraproject.org) (gcc version 4.6.2 20111027(Red Hat 4.6.2-1) (GCC) ) #1 SMP Thu Feb 9 02:24:08 UTC 2012

最佳答案

您的 use lib行有一个额外的 j .

use lib "/root/perl5/lib/perjl5";
# ^

所以路径与您稍后所说的不匹配(“模块已安装并位于:/root/perl5/lib/perl5/HTML/Template.pm”)。

诊断此问题的方法是从错误消息 /root/perl5/lib/perjl5 中复制并粘贴目录。然后附加模块的文件名 HTML/Template.pm/root/perl5/lib/perjl5/HTML/Template.pm ,然后在那里查看文件是否存在。

然后您会看到该文件不存在,然后可以继续确定目录名称中是否存在拼写错误。

此外,如果您要维护自己的 (CPAN) 库,而不是将 use lib ...在所有源文件中,您可能需要考虑使用另一种机制让 perl 使用您的库,例如设置 PERL5LIB环境变量(您可以从 shell 的启动文件(例如 ~/.bash_profile)中设置),或使用 perl -I... .

此外,如果您想使用 CPAN,您可能需要查看 local::lib模块。使用 local::lib 的一种方便方法是安装发行版的 local::lib(例如,在 Debian/Ubuntu 下, apt-get install liblocal-lib-perl),然后使用它来设置您自己的私有(private) CPAN 库。 (您可以从 CPAN 引导 local::lib,但使用发行版包更容易。)

关于Perl 模块未找到,但已安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9275874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com