Perlについての質問です。


下記は、チャットCGIの一部分で、「ログファイルの最前部に1行の文字列を挿入する」という動作をするものです。これを、「ログファイルの『最後部に』1行の文字列を挿入する」という動作に変更するには、具体的にどこをどのように変更すればよいでしょうか。

while ($max <= @lines) { pop(@lines); }
unshift (@lines,"$date<>$name<>$in{'comment'}<>$color<>$ENV{'REMOTE_ADDR'}\n");
open(OUT,">$logfile") || &error("Write Error : $logfile");
print OUT @lines;
close(OUT);

回答の条件
  • 1人2回まで
  • 登録:2008/04/20 07:08:39
  • 終了:2008/04/20 08:06:40

ベストアンサー

id:litt No.1

litt回答回数9ベストアンサー獲得回数12008/04/20 07:41:10

ポイント100pt

普通は open(OUT,">> $filename") とすれば追記モードでファイルを開くので

何も考えずにprintしていけばファイル末尾に追加されていきます。

今回のように$maxで最大行数を指定しているのであれば

while ($max <= @lines) { shift(@lines); }

push (@lines,"$date<>$name<>$in{'comment'}<>$color<>$ENV{'REMOTE_ADDR'}\n");

open(OUT,">$logfile") || &error("Write Error : $logfile");

print OUT @lines;

close(OUT);

でどうでしょうか?

id:crashtruck

できました、ありがとうございます!

2008/04/20 08:06:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません