File::Temp〜一時ファイルを保存するディレクトリと一時ファイルの名前を生成する。

画像をアップロードしてもらう、という処理なんかに有効です。画像アップロードの処理として、アップロードしてくれた画像を一時ファイルとして保存して成形し、成形後に一時ファイルを消したいとします。そんな時に役立つのがFile::Tempです。File::Tempは、処理が全て終わると作った一時保存用のディレクトリも一時ファイルも自動的に消してくれます。

#一時ファイルのファイル名を作る
use File::Temp;
my $fh = File::Temp->new();
my $fname = $fh->filename;
print $fname;
<STDIN>;      #->一番最後の処理なので、なにかしら入力すると(Enterのみでも可)一時ファイルが消える

#一時ファイルを保存するディレクトリを作る
use File::Temp;
my $tempdir = File::Temp::tempdir(CLEANUP=>1);
print $tempdir;
<STDIN>;      #->一番最後の処理なので、なにかしら入力すると(Enterのみでも可)一時保存用のディレクトリが消える

実験方法は以下。

(1)コンソールでperlと打って上記のスクリプトをそれぞれコピーして貼付ける。
(2)はりつけ後に改行した後、Control + Dを押す。=>スクリプトが実行されます。
(3)実行すると、print文によって、作成されたファイルやディレクトリが表示されますので、別のコンソールで本当に作られているか確認してみる。
(4)上記スクリプトを実行したコンソールに戻ってEnterを押し、もう一度別のコンソールで消えているかどうか確かめてみる。

perlって、便利なモジュールがありますね。