CGIのアップロード周りに戻ってきた。
CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jp
https://pointoht.ti-da.net/e6805798.html
マルチパートのファイルアップロードの場合、標準入力STDINからreadで全部読み込むと、マルチパートなのでパースが大変。
CGI.pmだと、CGI::paramにinputタグのnameで指定した名前を渡すだけで、パースされた"ファイル"を取得できる。
(ここでいう"ファイル"はファイルネームなのかファイルハンドルなのか謎の存在である。)
inputタグのnameを'uploadedfile'という名前に変えた。
paramにそれを指定すると$fileが返る。
これをprintすると、ファイル名。
しかし、readにファイルハンドルとして$fileを渡すと、ちゃんと機能して、ファイルの内容を読み込める。
そして、ファイル内容を出力した後、最後にrefで$fileが何かを調べる。
test1.txtを選択。
送信すると、
ファイル名を指してるのに、ちゃんと読み込めてる。結局refの$fileはFhと出ててファイルハンドルっぽい。
Sample/perl/CGI/param_uploadedfile/src/CGI at master · bg1bgst333/Sample · GitHub