2010年10月16日土曜日

perlで一時ファイルを使用する

#!/usr/bin/perl
use strict;
use warnings;

use File::Temp;
my $temp = File::Temp->new(DIR=>'/tmp',SUFFIX=>'.tmp');
print $temp->filename;
print $temp "hoge";
コンストラクタにDIRを指定すると一時ファイルを作るディレクトリを指定
SUFFIXは一時ファイルの末尾につける文字
UNLINK=>0を指定するとプロうグラムが終了しても一時ファイルを削除しない
$temp->filenameでファイルネームを取得できる
ちなみに$tempはすでにファイルハンドルなのですぐに書き込みができる

※ちなみにnewdirというディレクトリ版のコンストラクタもあるこちらはCLEANUPで自動削除の有無を切り替えできる

参考リンク
http://perldoc.perl.org/File/Temp.html
http://isoya.at.webry.info/200812/article_3.html
http://haginov.blog35.fc2.com/blog-entry-141.html


あとopen関数の第3引数にundefを指定してもできるみたい
http://d.hatena.ne.jp/dayflower/20061225/1167041087

0 件のコメント: