Perlの目次へ

ファイル操作

open,close演算子

oc01.pl

#!/usr/bin/perl

open(FILE, "df");    #ファイルdfを開く
close(FILE);         #ファイルdfを閉じる

ファイルの読み込み

dog.dat

犬のおまわりさん、
困ってしまってワンワンワワン、
ワンワンワワン

open01.pl

#!/usr/bin/perl

open(FILE,"dog.dat");
while($a=<FILE>){   #ファイルの最後まで、1行ずつ読み出し
  print"$a";
}
close(FILE);

実行結果

以下のようにもかける。

open02.pl

#!/usr/bin/perl

open(FILE,"dog.dat");
while(<FILE>){   #変数の指定が無い場合には、$_に代入
  print;         #引数が無い場合には、$_の内容を表示
}
close(FILE);

ファイルの書き込み

dog.dat

犬のおまわりさん、
困ってしまってワンワンワワン、
ワンワンワワン

write01.pl

#!/usr/bin/perl

open(FILE,"dog.dat");
open(FILE2,">dog2.dat");    #書き込み用ファイル

while($a=<FILE>){
  $a=~s/ワン/クン/g;
  print FILE2 "$a";
}
close(FILE);
close(FILE2);
open(FILE,"dog2.dat");
while($a=<FILE>){
  print"$a";
}
close(FILE);

実行結果

dog2.dat

犬のおまわりさん、
困ってしまってクンクンワクン、
クンクンワクン

ファイルの書き込み(追加)

dog.dat

犬のおまわりさん、
困ってしまってワンワンワワン、
ワンワンワワン

dog3.dat

泣いてばかりいる
子ねこちゃん

write02.pl

#!/usr/bin/perl

open(FILE,"dog.dat");    #追加書き込み用ファイル
open(FILE2,">>dog3.dat");    #追加書き込み用ファイル

while($a=<FILE>){
  $a=~s/ワン/ギャン/g;
  print FILE2 "$a";
}
close(FILE);
close(FILE2);
open(FILE,"dog3.dat");
while($a=<FILE>){
  print"$a";
}
close(FILE);

実行結果

dog3.dat

泣いてばかりいる
子ねこちゃん
犬のおまわりさん、
困ってしまってギャンギャンワギャン、
ギャンギャンワギャン

ファイルの読み書き(読み書き両用)

dog4.dat

犬のおまわりさん、
困ってしまってワンワンワワン、
ワンワンワワン

rw01.pl

#!/usr/bin/perl

open(FILE,"+<dog4.dat");    #読み書き両用ファイル
while($a=<FILE>){
  print "$a";
}
print FILE "最終行";
print "\n書きこみ終了\n\n";
close(FILE);

open(FILE,"dog4.dat");
while($a=<FILE>){
  print "$a";
}
close(FILE);

実行結果

dog4.dat

犬のおまわりさん、
困ってしまってワンワンワワン、
ワンワンワワン
最終行

ファイル・ポインタの移動

cn.dat

0

簡易カウンタ

fp01.pl

#!/usr/bin/perl

open(FILE,"+<cn.dat");    #読み書き両用ファイル
$a=<FILE>;
$a++;
seek(FILE, 0, 0);       #ファイルの先頭へ
print FILE "$a";
print "$a";
close(FILE);

実行結果

cn.dat

3
seek(ファイルハンドル, オフセット, 起点)
ファイルハンドルopenでファイルを開いたときに取得したファイルハンドル
オフセット起点からの相対位置 バイト単位で指定 起点が0でなければ、マイナスも可
起点0:ファイルの先頭
1:現在のファイルポインタ
2:ファイルの末尾

since 2005/08/13(Sat)

Perlの目次へ

トップページへ

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送