ファイルの読み書き

ファイル書き込みサンプル


open( DATAFILE, "+<$datafile");
@logs = <DATAFILE>;
 
$log_data = "kazan\t順ちゃん☆\tkazan\n";
 
unshift( @logs, $log_data );
if($#logs > 3){
 pop @logs;
}
seek(DATAFILE,0,0);
print DATAFILE @logs;
truncate( DATAFILE, tell( DATAFILE ));
close( DATAFILE );
 

上の例では、まず、ファイルからすべて配列として読み込み、配列の先頭に$log_dataを追加して、$log_dataの大きさが、3以上(ここでは、3行以上)だったら、配列の末尾の行を切り取っています。
そしてファイルに書き込み。

次にファイル読み込み


open( LOGFILE, "+<$datafile"); # ファイルのオープン
 @logs = <LOGFILE>; # ファイル内のデータを全て読み込む
close( LOGFILE );
 
foreach $line ( @logs ) {
 chop( $line );
 ($name1, $name2,$name3 ) = split( /\t/, $line );
}
 

ファイルを読み込んで、一行ずつループ。ループの中で、タブを区切り文字として、分割して変数に入れてる。