PerlCGIモジュールを使用して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;
しかし、これは何も出力しません。エラーも発生せず、構文はOKです。私はここで非常に単純なものが欠けていることを知っていますが、これについては本当に助けが必要です。このスクリプトを正しく書くにはどうすればよいですか?違いがあれば、WindowsXPで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がコメントに投稿したリンクを見ました。ここで言及されているポイントの1つは、コマンドラインからスクリプトを実行してみる必要があるということです。これらのパラメータをコマンドラインから渡すにはどうすればよいですか?