初心者だけどPerlが大好き

コードが世界を変える!

ひとつのCGIフォームから、別のCGIに結果を送るスクリプト

昨日は、画面一杯のフォームを作成し、その値をエコーバックするCGIスクリプトでしたね。
今度は、これを もっと簡単にして 別々のCGIにしましょう。
とっても簡単。コツは  $query->start_form(-action=>'2.cgi'); という書き方になります。
'2.cgi'の部分にデータを飛ばしたいcgi名をいれるだけでしゅ。
あとは昨日のCGIフォームを ただ 真っ二つにするだけです。

まず フォームを書いた question.cgiをつくります

#!D:/xampp/perl/bin/perl -w   #Cドライブの人はCにしてね
use CGI;
use utf8;
$q = new CGI;
print $q->header,
$q->start_html("Question CGI.pm Form"),
$q->h1("Example CGI.pm Form"),
$q->start_form(-action=>'answer.cgi'),
$q->em("What's your name?"),
$q->textfield('name'),
$q->checkbox('Not my real name'),
$q->p,
$q->em("Where can you find English Sparrows?"),
$q->checkbox_group(-name=>'Sparrow locations',-values=>['England','France','Spain','Asia','Hoboken'],-linebreak=>'yes',-defaults=>['England','Asia']),
$q->p,
$q->em("How far can they fly?"),
$q->radio_group(-name=>'how far',-values=>['10 ft','1 mile','10 miles','real far'],-default=>'1 mile'),
$q->p,
$q->em("What's your favorite color?"),
$q->popup_menu(-name=>'Color',-values=>['black','brown','red','yellow'],-default=>'red'),
$q->hidden('Reference','Monty Python and the Holy Grail'),
$q->p,
$q->em("What have you got there?"),
$q->scrolling_list(-name=>'possessions',-values=>['A Coconut','A Grail','An Icon','A Sword','A Ticket'],-size=>5,-multiple=>'true'),
$q->p,
$q->em("Any parting comments?"),
$q->textarea(-name=>'Comments',-rows=>10,-columns=>50),
$q->p,
$q->reset,
$q->submit('Action','Shout'),
$q->submit('Action','Scream'),
$q->endform,
$q->end_html;

そして 答えを受け取る answer.cgiを作ります
日本語を入力したら日本語が渡ります

#!D:/xampp/perl/bin/perl -w  #Cドライブの人はCにしてね   
use CGI;
use utf8;
$q = new CGI;
$name =$q->param('name');
@Sparrowlocations =$q->param('Sparrow locations');
$howfar =$q->param('how far');
$color =$q->param('Color');
$possessions =$q->param('possessions');
$Comments =$q->param('Comments');
print $q->header,
$q->start_html(-title=>"Answer CGI.pm Form"),
$q->h1("Here are the current settings in this form"),
$q->em("$name"),
$q->hr,
$q->em("@Sparrowlocations"),
$q->hr,
$q->em("$howfar"),
$q->hr,
$q->em("$color"),
$q->hr,
$q->em("$possessions"),
$q->hr,
$q->em("$Comments"),
$q->hr,
$q->end_html;