質問: cgiでのデータ受信 すみません、これで最後にします・・・ http://oshiete.goo.ne.jp/qa/7445617.html 結局getによるデータ受信の方もできませんでした。 やはりpostに戻ってやってみると、$env{'content_length'}の値は入っています。 文字の長さが入っているということは、文字列が入っているだろうということなので、 後は文字を読み込むだけのはずです。 となると read(stdin, $alldata, $env{'content_length'}); このコードが間違っているのでしょうか?
回答: すごい原理的な仕組みを使って、cgiのパラメータを取得しようとしているみたいですけど、cgi.pmくらいは使いましょう。(cgi-lib.plじゃなくて) cgi.pmなどのモジュールを使わずpostが動いているのを確認したいだけなら、つぎのコードで確認できます。表示がくずれるので、空白2文字を全角空白にしていることに注意。 --- foo.html test text data: --- foo.cgi #!/usr/bin/perl print "content-type: text/plain; charset=utf-8\n\n"; read stdin, $data, $env{'content_length'}; print "$data";