CGI.pmをラップしてMyCGI.pmを作った。
CGI::Varsを上書きして定義し、最後に「return $this->SUPER::Vars()」とかした。
帰ってきたのはhashに見える別物。参照を突っ込むと「'ARRAY(nnnn)'」って文字列で保存しやがる。
保存できねぇなら半端にやらずにいっそ死んでくれ。。。
とりあえず「return %{$this->SUPER::Vars()};」と「my $cgi = {MyCGI->new->Vars()};」こんな感じで普通のhashに展開。
でもファイルアップロードもやりたかったので"すぐ下"で「my $cgi_file = CGI->new;」ってのも作る。
(時間無かったのでこの程度しか頭まわらんかった)
喜び勇んで「$cgi_file->param( 'hoge' )」とかする。
(install CGI.pmのバージョンが低いので「upload」methodは使えない)
帰ってきたFHはいくら読んでも中身が出てこない。。。
どうやら最初のCGIオブジェクト以外のFHは空になるらしい。
だったら空を読み込んだ段階で死んでくれよ。。。
空ファイルを読みたい状態なんて存在するのか?
明らかにわからずやってる動作なんだからそこは死んでくれ。
ってか、そもそもオブジェクトの生成順で動作が変わるのもどうかと思うし。
(FHだから読み出し順で動作が変わるのはしょうがないと思うけど)
これがPerlの標準的な値の取得方法かと思うと泣けてくる。
コメントする