パスワードを忘れた? アカウント作成
31166 journal

hylomの日記: CGI.pmとuse open ":std"

日記 by hylom

CGI.pmで、POSTされたフォーム内容のparseが何かおかしい、でアップロードされたファイルの内容に他のフォームの内容が混ざる、てかこれmultipartメッセージの分解間違ってね? CGI.pmのバグか?

とかいう変なハマり方をしたのだが、結論としては「use open ":utf8"」と「use open ":std"」が原因だった模様。

この2つをuseすると、multipartメッセージのデリミタがうまく認識されないようだ。ちなみに$CGI::VERSIONは3.15。

しかも、この状態だとIO::FileとかでopenしたファイルのI/Oがutf-8で行われなくなるというおまけ付き。なんじゃそりゃー。

最近は無意識的にPerlソースコードの先頭に

use utf8;
use open ":utf8";
use open ":std";

を付けてしまっていたのが元凶といえばそうなのだが、2時間ぐらい無駄に消えた気がする……。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ見習い

読み込み中...