2008-03-12から1日間の記事一覧

7.10 ファイルハンドルをコピーする

*ALIAS = *ORIGINAL

7.9 数値形式のファイル記述子をオープン、クローズする

入出力先のファイル記述子だけがわかっている。しかし、Perlでは、ファイル記述子ではなく、ファイルハンドルで入出力先をしていしなければないない。 open()を使う場合 open(FH, "<&=", $FDNUM); # FHファイル記述子自体に関連づける open(FH, "<&", $FDNUM…

7.8 複数のファイルハンドルに同時に出力する

プロセスを分岐したくない場合 foreach $filehandle (@FILEHANDLES) { print $filehandle $stuff_to_print; } プロセスを分岐してもよい場合 open(MANY, "| tee file1 file2 file3 > /dev/null") or die $!; print MANY "data\n" or die $!; close(MANY) or …

7.7 書き込みモードでオープンしたファイルハンドルをキャッシュする

同時にオープンできる出力用ファイルの数はシステムにより制限されているが、その制限数以上のファイルをオープンしたい。 標準モジュールFIleCacheを使用する。 use FileCache; cacheout ($path); # ファイルハンドルを使用するたびに実行 print $path "out…

7.6 ファイルハンドルを引数として受け取る関数を書く

Symbolモジュールのqualify_to_ref関数と*プロトタイプをサブルーチンで使用する。 use Symbol qw(qualify_to_ref); sub my_eof (*) { my $handle = shift; $handle = qualify_to_ref($handle, caller()); # $handleを使用する } my_eof(HANDLE);