Yamamoto's Laboratory
 
ファイル
 
 
 
 

Perlファイル処理

Perl のファイル処理について,説明します.

目次


基本事項

モード

ファイルの入出力のモード指定は,表1の通りです.

読み込み ファイルを読み込み用にオープンします.
書き込み ファイルにデータを書き込むことができます.
表1 ファイルの入出力モード
モード 読み込み 書き込み 追加 新規作成 上書き
<        
>    
>>    
+<      
+>  
+>>  

エラー処理

ファイルをオープン時のエラー処理は,次のようにします.

open(IN,'<', "input.dat") or die "File can't be opend.\n$!\n";

これは,「ファイルを開けろ,さもなければ,死んでしまえ」と憶えます.

open の関数がエラーを返した場合,orに引き続く構文(die 関数)が実行されます.この一文は,ブール代数の A or B の構文になっています.したがって,最初のA(open)の文が FALSE の場合,まだブール値が確定していませんので,次のB(die)の文が実行されることになります.

dieは,引数である文字列を標準エラー出力(STDERR:通常はディスプレイ)に表示した後,プログラムを終了させます.この文字列中の$!は特殊変数で,エラー番号やエラーメッセージが保管されています.

ファイル入出力

ファイル操作プログラム例

  • ディレクトリー hogehoge にある拡張子が txt のファイルを操作する.
  • #!/usr/bin/perl
    
    $dir="hogehoge";
    
    opendir(DIR,$dir) or die "$dir can not be opened.\n $!";
    chdir($dir);
    
    while ($file=readdir(DIR)){
        if ($file=~ /.txt/ ){
    	open(IN,$file) or die "IN file can not be opened.\n$i";
    	while(<IN>){
    	    #--------------------------------------------------
    	    # ここに処理を書く
    	    # $_に各行の内容が格納される
    	    #--------------------------------------------------
    	}
    	close(IN);
        }
    }

ページ作成情報

参考資料

  1. SmartのWEB講座perl講座は,大変わかりやすく説明しています.その中の「ファイルハンドルと出力」を参考にしました.

更新履歴

2005年頃 ページの新規作成


no counter