我想使用 Perl CGI 模块来创建 CGI 脚本。我浏览了此处提供的文档 ,但我似乎错过了一些明显的东西,因为我的第一个程序遇到了问题。这是HTML:
<form name="form1" method="post" action="http://localhost/cgi-bin/filters.cgi">
<input name="mainbox" type="checkbox"> Mainbox<br> <br>
<input name="n1" type="checkbox">No. 1 <br><br>
<input name="n2" type="checkbox"> No. 2<br><br>
<input name="n3" type="checkbox">No. 3 <br>
<div style="text-align: center;"><input name="Submit" value="Submit" type="submit"></div>
</form>
我只是希望将传递给 CGI 文件的参数名称打印在新页面上。所以(以我有限的理解),我在filters.cgi中写了以下内容:
#!/xampp/perl/bin/perl -w
use strict;
use warnings;
use CGI;
my $query = CGI->new;
print $query = $query->header('text/html');
my @names = $query->param;
my $q1 = CGI->new;
print $q1->header('text/html');
print $q1->start_html('hello');
foreach my $name (@names) {
print $q1->h1($name);
}
print $q1->end_html;
但这没有打印出来。它也没有给我任何错误,语法也可以。我知道我在这里遗漏了一些非常简单的东西,但我真的需要一些帮助。如何正确编写此脚本?我在 Windows XP 中使用 XAMPP,如果这有什么不同的话。
编辑:也许我应该提到我自己试图解决这个问题。所以我编写了以下有效的脚本:
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
my @arr = ('ac', 'fg', 'ty');
my $q1 = CGI->new;
print $q1->header('text/html');
$q1->start_html('hello world');
foreach my $el (@arr) {
print $q1->p($el);
}
$q1->end_html;
所以问题出在传递的参数中。我什至不知道在冗长的文档中哪里可以寻求帮助,所以决定在这里提问。另外,我看到了 Nikhil 在评论中发布的链接。提到的要点之一是我应该尝试从命令行运行我的脚本。如何从命令行传递这些参数?