ファイルアップローダーのスクリプトでは、
ファイルの受け取りにcgi-lib.plというのを使ってるみたいなんですけど
それを使わないと無理なんでしょうか。
あと、use CGIも無しで。

use CGIを使った場合って
read( STDIN, $post, $ENV{ 'CONTENT_LENGTH' } );
で受け取るのが無効になってしまいますか?
hiddenの受け取りにread( STDIN, $post, $ENV{ 'CONTENT_LENGTH' } );を使って
ファイルの受け取りに$file = $query->parama('file);
をやったらhiddenが受け取れませんでしたので・・・。