【问题标题】:Why does my Perl CGI script complain about "Can't locate CGI/Simple.pm"?为什么我的 Perl CGI 脚本抱怨“找不到 CGI/Simple.pm”?
【发布时间】:2011-01-31 14:29:51
【问题描述】:

欲了解更多信息,请参阅Example

use strict; use warnings;
use CGI::Simple;
use DBI;

my $cgi = CGI::Simple->new;
my $dsn = sprintf(
    'DBI:mysql:database=%s;host=%s',
    'cdcol', 'localhost'
);

my $dbh = DBI->connect($dsn, root => '',
    { AutoCommit => 0, RaiseError => 0 }
);

my $status = $dbh ? 'Connected' : 'Failed to connect';

print $cgi->header, <<HTML;
<!DOCTYPE HTML>
<html>
<head><title>Test</title></head>
<body>
<h1>Perl CGI Script</h1>
<p>$status</p>
</body>
</html>
HTML

这段代码给了我错误:

服务器遇到内部错误,无法完成您的请求。

    错误信息:
    无法在 @INC 中找到 CGI/Simple.pm(@INC 包含:C:/xampp/perl/site/lib/ C:/xampp/perl/lib C:/xampp/perl/site/lib C:/xampp /apache) 在 C:/xampp/htdocs/perl/index.pl 第 4 行。BEGIN failed - 编译在 C:/xampp/htdocs/perl/index.pl 第 4 行中止。,

    错误 500
    本地主机
    2010 年 3 月 25 日上午 11:19:19
    Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 

这是什么意思,我该如何解决?

【问题讨论】:

  • 您甚至没有接触到 DBI 部分。这个问题的答案可以在 Stackoverflow 上的几个地方找到。

标签: perl cgi


【解决方案1】:

要么将你的脚本转换为使用CGI.pm 而不是CGI::Simple,要么安装CGI::Simpleppmcpan

【讨论】:

  • 而且,如果您要使用 CGI.pm,请继续阅读 CGI::Simple 的文档,以确保您使用 CGI.pm 的合理默认值。
【解决方案2】:

AFAIK,xampp 是基于 ActivePerl 的。在命令行中输入ppm install CGI-Simple

ppm install DBD-mysql 也是个好主意。

【讨论】:

    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    相关资源
    最近更新 更多