さて、メインルーチンの方も見ておきましょう。
ここでコマンド入力もできるようにするので、入力系の処理分岐が増えます。
&SYSIN_TIME; &STDIN_QUERY_STRING; if( $Query_Tbl{'mode'} == 51){ if( $Query_Tbl{ 'msg' } ne "" ){ &FILEIN_MSG; &FILEOUT_VOTE; } print "Location: $Cgi_Main\n\n"; }elsif( $Query_Tbl{'mode'} == 52){ if( $Query_Tbl{ 'msg0' } ne "" and $Query_Tbl{ 'msg1' } ne ""){ &FILEIN_MSG; &FILEOUT_ATTACK; } print "Location: $Cgi_Main\n\n"; }elsif( $Query_Tbl{'mode'} == 53){ if( $Query_Tbl{ 'msg0' } ne "" and $Query_Tbl{ 'msg1' } ne ""){ &FILEIN_MSG; &FILEOUT_FORTUNE; } print "Location: $Cgi_Main\n\n"; }elsif( $Query_Tbl{'mode'} == 54){ if( $Query_Tbl{ 'msg0' } ne "" and $Query_Tbl{ 'msg1' } ne ""){ &FILEIN_MSG; &FILEOUT_GUARD; } print "Location: $Cgi_Main\n\n"; }elsif( $Query_Tbl{'mode'} ){ if( $Query_Tbl{ 'msg' } ne "" ){ &FILEIN_MSG; &FILEOUT_MSG; } print "Location: $Cgi_Main\n\n"; }else{ &FILEIN_MSG; &STDOUT_HTML; }
入力が51〜54の場合、コマンド入力と見なしてその出力用のサブルーチンを呼び出します。また、それ以外の入力の時には、単なる発言として扱っています。
入力が無かった場合には、表示だけを行うようにしています。