当我包含文件时,为什么我的Perl CGI程序会失败?

时间:2010-01-29 23:13:20

标签: perl require

我正在尝试创建一个基本模板,然后根据采取的操作加载数据。我包括(必需)一些页面很好,但当我包含另一个文件,我得到500内部错误。直接粘贴代码并且工作正常:

这就是我所拥有的;

#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
require LWP::UserAgent;
use DBI;


    #deal with post requests
    require "perl/post-sort.pl";
    #loading stylesheets and javascripts
    require "header.pl";
    # bring in loggin js
    if( $arg{REQUEST_KEY} eq "") {
        require "javascript/js-main-login.pl";
    }
    print "</head> \n";
    print " \n";
    ...
    ...

的Perl / post-sort.pl

my %arg = ();
for (split /\&/, <STDIN>) {
   my ($key, $val) = split /=/;
   $val =~ s/\+/ /g;
   $val =~ s/%([0-9a-fA-F]{2})/chr(hex($1))/ge;
   $arg{$key} = $val;
}

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:4)

500内部服务器错误通常表示标头错误或丢失。确保在包含的代码中,首先打印(到浏览器)的是标题,或确保没有打印任何内容,原始代码将打印出正确的标题。

另一种可能性是你require'的文件没有“作为最后一个语句返回true”(即,不以1;结束),这会导致你的脚本在编译时失败并产生500错误。

另见今天早些时候的this apropos discussion on debugging CGI scripts