用perl写的cgi脚本,在服务器可正常运行,但通过前端无法运行。

网页上的链接是<ahref="........../cgi-bin/seq_screen.cgi?Unclear|Rbcl">Download</a>。以下是perl的源... 网页上的链接是<a href="........../cgi-bin/seq_screen.cgi?Unclear|Rbcl">Download</a>。
以下是perl的源代码。
#!/usr/bin/perl
#print a fromatted list of all the environment variables

use strict;

print "Content-type: text/plain\n\n";

#读取变量
my $var_top = $ENV{QUERY_STRING};
print $var_top . "\n";

#对变量进行分割,并组成方便查询的形式
my @var_name = split /\|/ , $var_top;
my $last = pop @var_name;
chomp($last);
print $last;
my $match = "";
foreach (@var_name){
$match= $match . $_ .".*";
}
chomp($match);
print $match;

#在文件中查询,并输出
my $first;
my $second;
open(MYFILE,"../phylogenedb/download/$last");
#open(MYFILE1,">../phylogenedb/download/sequence");
while (chomp($first=<MYFILE>),chomp($second=<MYFILE>)){
$_ = $first;
if (/]$match.$last/){
print $first . "\n" . $second . "\n";
}
}
close(MYFILE);

变量的读取和分割都没有问题,但在文件中查询的时候,open这一行并不打开文件,这是为什么?
展开
 我来答
jianxia2k
2015-05-08 · TA获得超过399个赞
知道小有建树答主
回答量:365
采纳率:82%
帮助的人:194万
展开全部
如果确定open这一行错误,很可能是权限问题。因为cgi运行时,用户是WEB支撑平台的用户,比如是apache,tomcat之类的,很可能没有权限进入你那个目录,或者打开你那个文件。

另外提示一下,调试cgi的话,检查errlog是个好方法,里面会有更详细的错误信息,如果你在使用apache,可以看一下/var/log/httpd/error_log。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式