蜜蜂号覚書 ファイル内容の読み書き

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ファイル内容の読み書き

ファイルOpen

open(R, $filename) or die "File not opened.";
open ファイルを開く。第一引数がファイルポインタ。第二引数が読み込むファイル。
第二引数の頭に特定の記号をつけるとモードを指定して開くことが出来る。
構文 意味
open(F, "<filename"); 読込み用
open(F, ">filename"); 書込み用(上書き)
open(F, ">>filename"); 書込み用(追加)
open(F, "+>filename"); 読み書き用
open(F, "+<filename"); 読み書き用
die メッセージを出力して終了。
orでつなぐことで、openが真の場合はdieを実行しない。openが偽の場合にdieを実行する。という動作になる。
(式が真になることが確定した段階で残りを評価しないらしい)
orでも||でもどちらでもよい。(意味は同じ)

ファイル読み込み

$line = <F>;
ファイルハンドラから一行読み込む。
@array = <F>;
配列に全部取り込む。一行目は $array[0]; となる。
read(F, $data, 100);
先頭から100バイト読み込む。

ファイルの書き込み

print(F, $data);
出力先をファイルに変えただけで、後は通常のprintと同じ。同様にprintfも使用可能。

ファイルClose

close(R);
close ファイルを閉じる。第一引数がファイルポインタ。

ファイル読み書きのサンプル

#!/usr/bin/perl
$from_filename=$ARGV[0];
@filename = split(/["."]/,$from_filename);
$to_filename = @filename[0];
open(READ, $from_filename) || die "$from_filename is not opened.";
open(FILE, ">>$to_filename") || die "$to_filename is not opened.";
while (<READ>) {
    @list = split(/[","\r\n]/, $_);
    for ($i = 1; $i < @list; $i++) {
        print FILE trim($list[$i]).",";
    }
    print FILE "\r\n";
}
close(FILE);
close(READ);
csvファイルを読み込み、trimをしてcsvファイルに書き込む。
(もうちょっと別の用途で書いたコードを元に貼り付けているので微妙ですが…)

何かあればどうぞ。

名前:
コメント: