Perlでファイルの先頭行を削除する
ログの保存とかで使うときが多いと思うので自分用の備忘録。
#!/usr/bin/perl use strict; use warnings; my $line = 50; # ログ保存行数 my @log; # とりあえず読み込む if ( open( FILE, "< ./log.cgi") ) { @log = <FILE>; close FILE; } # キャッシュ保存数を超えていたら一行目を消す shift @log if ( $line <= $#log + 1 ); # 後ろに新しい行を足す push (@log, "(Add line)\n" ); # 書きこむ if ( open( FILE, "> ./log.cgi") ) { print FILE @log; close FILE; }
要は配列にいれて先頭を消して後ろに足せばいいのです。
頭いいんだか悪いんだか。