cgiについて
perlぜんぜん知らないのでメモ
#!/usr/local/bin/perl # 1.REQUEST_METHODをチェックしてリクエストプロトコル(GET or POST)を判断する if( $ENV{'REQUEST_METHOD'} eq "GET" ) { # 2.GETであれば、QUERY_STRINGからクエリを読み込む $buffer = $ENV{'QUERY_STRING'}; } else { # 3.POSTであれば、CONTENT_LENGTHを使用してリクエストのサイズを調べ、 # 標準入力からクエリを読み込む read( STDIN, $buffer, $ENV{'CONTENT_LENGTH'} ); } print "Content-Type: text/html", "\n\n"; print "<b>Data</b> ", $buffer, "<br>\n"; print "<b>Split Data</b><br> ", "\n"; # 4.クエリをアンパサンド( & )で分割 my @pairs = split(/&/,$buffer); foreach $pair (@pairs){ # 5.イコール( = )で連結されたキーと値を分割(kye=value) my($name, $value) = split(/=/, $pair); # 6.プラス( + )をスペース( )に変換 $value =~ tr/+/ /; # 7.16進数にエンコードされた文字列をデコード $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; print "$name : $value<br>"; }