CGI-BBS > CGI > Perl > 狂ってしまったログの上書き方法を直したい。


カレッヂ
カレッヂ


質問者 あやか  投稿日 2005/6/23(木) 05:10:57
つい先日、ログの新着順表示について質問させて頂いた者です。
こちらで頂いた助言により、その件は無事に解決したのですが、
新たな問題が生じましたので質問させて下さい。

基本スクリプトは前回と同じ
http://ayaka.daa.jp/koko.txt です。
実際に設置した物は、
	open (LINES,">>$datafile") || &error(1, "データファイルが開けないので、記録できません。");
	eval 'flock(LINES,2);';
	seek (LINES,0,0);
	print LINES ($value);
	eval 'flock(LINES,8);';
	close (LINES);
	push(@datas,$value);
の部分(85行目〜)を
	open (LINES,"<$datafile") || die &error(1, "データファイルが開けないので、記録できません。");
	@datas = <LINES>;
	close (LINES);
	unshift (@datas, $value);
	open (LINES, ">$datafile") || die &error(1, "データファイルが開けないので、記録できません。");
	eval 'flock(LINES,2);';
	print LINES @datas;
	eval 'flock(LINES,8);';
	close (LINES);
と書き換えました。

新たな問題ですが、ログデータが3件を越えてから、何故か新規
データの番号が必ず2番になってしまいます。
例えば、データが6件あるとして、そこに新規データが加わると、
7件目のデータ番号も2番になってしまうのです。
これを修正する方法はありませんか?
初心者的質問ばかりで申し訳ありませんが、宜しくお願い致します。

【習熟度】多少の設置経験

質問者 あやか  [削除]  投稿日 2005/6/28(火) 00:10:11
解決しました。
お騒がせして申し訳ありません。

このページは終了したので返信(回答)は書きこめません
 


Web裏技