• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ログに記録又は読み出す際、最新の100件以外の扱いについて)

ログの記録と読み出しについての最適な処理方法は?

このQ&Aのポイント
  • perlでログを記録する際に、常に最新の100件だけを表示または記録する方法と、読み出し時に100件以上ある場合に最新の100件に更新する方法のどちらが良いでしょうか。
  • dataの書き込み/読み出しには、関数を使用して行われます。
  • 最適な処理方法について情報を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

最新100件に保つ方がいいでしょう。 いらない100件を超える古い分を記録していても(使わないのなら)記録しておく意味がありません。 $max = 100; #最大数 open(FH, "+< ./test.log") || die "Can't Open : $!"; @list = <FH>; #既存のデータを読む push(@list,"$var\n"); #新しいのを追加 shift(@list) if($#list + 1 > $max); #最大数を超えたら先頭から1つ除去 truncate(FH,0); #ファイルサイズを0にする seek(FH,0,0); #ポインタを先頭に戻す print FH @list; #書き込む close(FH);

taku0
質問者

お礼

ご教授頂きありがとうございます。 お返事遅くなったのですが、この問題を先送りにしており、ご教授頂いた内容を参考にさせていただき、昨日、今日とで改めて自分なりに思考した結果、下記のような形でとりあえずおちつきました。 またの機会宜しくお願い致します。 $logfile = "./log.txt"; open(IN,"$logfile"); @list = <IN>; close(IN); for ($n =0; $n < 99; $n++) { $list2[$n] = pop @list; } open(OUT,">$logfile"); print OUT @list2; print OUT "$tuikanaiyou\n"; close(OUT);

関連するQ&A