標準モジュールを使おう(1)File::Temp
なんとなく続編物にしてみた
File::Temp
5.006001
一時ファイルとか一時ディレクトリを用意してくれるモジュール。
ファイルに書き込みが完了してからコピーしたりとか
tarアーカイブを展開する一時的なディレクトリとして
使ったりとか夢がひろがりんぐ?
とにかくファイル操作があるなら、use strict,use warningsと一緒にどうぞ。
勝手に消しておいてくれるオプションがあるので推奨しておく。
a.pl
#!/usr/bin/perl use strict; use warnings; use File::Temp qw/ tempfile tempdir /; $\="\n";# print の後に改行を入れてくれる特殊変数 # このプロセスが終わったら消す my ($fh, $filename) = tempfile( UNLINK => 1 ); print "\$filename=$filename"; # tmpファイルに書き込み print $fh "ひたぎさんとあららぎさん"; close $fh; # tmpファイル読み込み open my $fh2, "< $filename" or die "error $!"; while(my $line = <$fh2>) { chomp $line; print $line; } close $fh2; # ディレクトリは CLEANUP を指定する my $tmpdir = tempdir( CLEANUP => 1 ); print "tmpdir=$tmpdir"; if (-d $tmpdir) { print "dir exist!"; }
$ perl a.pl filename=/tmp/Fxx9SiiI6W ひたぎさんとあららぎさん tmpdir=/tmp/AUkHdsofEf dir exist! $ ll /tmp/Fxx9SiiI6W ls: /tmp/Fxx9SiiI6Wにアクセスできません: No such file or directory $ ll /tmp/AUkHdsofEf ls: /tmp/AUkHdsofEfにアクセスできません: No such file or directory
perldoc File::Temp でもいいし、日本語訳なら以下
File::Temp - テンポラリファイルの名前とハンドルを安全に返す
http://perldoc.jp/docs/modules/File-Temp-0.12/Temp.pod
Perlの標準モジュール確認君
http://demo.lonio.us/pl_mod/