require "cgi-lib.pl"; #C言語のインクルード文みたいの &ReadParse(*dat); #入力されたメッセージが連想配列datに格納される
#!/usr/bin/perl
#
#サーバーの予約変数=CGI環境変数
# REQUEST_METHOD : フォームのMETHOD="〜"が入ります
# QUERY_STRING   : GETのときのメッセージが入ります
# CONTENT_LENGTH : POSTのときのメッセージ長が入ります
#                   この長さ分だけ標準入力からメッセージを
#                   読み込みます
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/; #小文字を念のため大文字にする
if ($ENV{'REQUEST_METHOD'} eq "GET") {
    $dat = $ENV{'QUERY_STRING'};
} else {
    read(STDIN, $dat, $ENV{'CONTENT_LENGTH'});
}
@buf = split('&',$dat);
foreach $item (@buf) {
  ($var,$value) = split('=',$item);
  $value =~ tr/+/ /; #半角の空白を元に戻す
#%xxのアスキーコードを文字に直す
#半角記号や漢字はこの形式に化けているので
  $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
  $value =~ s/</</g; #タグを戻す
  $value =~ s/>/>/g; #
  $value =~ s/\x0d\x0a/\x0a/g; #DOSの改行コード(CR/LF)をLFのみにする
  $value =~ s/\x0d/\x0a/g;     #Macの改行コード(CR)をLFにする
                               #\x0d=CR \x0a=LF
  $itm{$var} = $value;
}
$a = $itm{'a'};
$b = $itm{'b'};
$c = $itm{'c'};
exit;
この例では,何もしないので具体的なものは次回からとします。
kibita@orange.or.jp