我是perl的新手。我在macbook上运行perl脚本,我得到以下错误:
Can't locate CGIBook/Error.pm in @INC (@INC contains: /Library/Perl/5.12/darwin-thread-
multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level
/Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.3 /System/Library/Perl/5.12/darwin-
thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-
thread-multi-2level /System/Library/Perl/Extras/5.12) at HW1_3A.pl line 5.
看起来我的perl目录中没有CGIBook。那是对的吗?任何人都可以帮我这个吗?
答案 0 :(得分:1)
我没有在CPAN上找到CGIBook::Error,因此它可能是本地模块或您从供应商那里得到(或应该得到)的东西。有人可能已安装在默认模块搜索路径以外的其他位置。
在这种情况下,您可能会尝试使用古老书籍 CGI Programming with Perl 中的示例,该示例为示例创建了一个具有相同名称的模块。
Google搜索错误消息很快就会产生以下代码:
#!/usr/bin/perl -wT
package CGIBook::Error;
# Export the error subroutine
use Exporter;
@ISA = "Exporter";
@EXPORT = qw( error );
$VERSION = "0.01";
use strict;
use CGI;
use CGI::Carp qw( fatalsToBrowser );
BEGIN {
sub carp_error {
my $error_message = shift;
my $q = new CGI;
my $discard_this = $q->header( "text/html" );
error( $q, $error_message );
}
CGI::Carp::set_message( \&carp_error );
}
sub error {
my( $q, $error_message ) = @_;
print $q->header( "text/html" ),
$q->start_html( "Error" ),
$q->h1( "Error" ),
$q->p( "Sorry, the following error has occurred: " ),
$q->p( $q->i( $error_message ) ),
$q->end_html;
exit;
}
1;