使用Perl CGI写入文本文件

时间:2018-12-12 22:43:11

标签: perl cgi webpage

我正在使用cgi调用perl函数,并且在perl函数内部,我希望它在txt中写一些东西。但这暂时不起作用。我试图在我的apache服务器上运行cgi脚本。 CGI可以按我的要求打印网页,但看不到我要写入的文件。好像perl脚本没有被服务器执行。

perl脚本非常简单。文件名为perl预测_seq_1.pl

#!/usr/bin/perl -w
use strict;
use warnings;


my $seq = $ARGV[0];
my $txtfile = "test.txt";
open(my $FH, '>', $txtfile);
print $FH "test $seq success\n";
close $FH;

还有cgi部分,我只是称呼为

system('perl predict_seq_1.pl', $geneSeq);

2 个答案:

答案 0 :(得分:0)

您的CGI程序将由在您的系统上具有非常低权限的用户运行-肯定低于在同一系统上您自己的用户帐户。

似乎有两件事之一正在发生:

  1. 您的CGI进程看不到您要运行的程序。
  2. 您的CGI程序无权执行您要运行的程序。

您应该检查system()的返回值,并查看$?的值。

答案 1 :(得分:0)

要么给系统一个字符串,要么给它单独的参数。您的脚本正在尝试并且无法运行程序perl predict_seq_1.pl,而不是让perl运行脚本predict_seq_1.pl

system('perl', 'predict_seq_1.pl', $geneSeq);