ごめんなさい。見落としてました(^^;
> 『100件のログ表示を 50件づつ表示する方法』
> を教えてください。
>
> open(IN, "$logfile");
> <IN>;
> while(<IN>) {
> ($no,$com,$name・・・
>
> ここらへんで ごにょごにょするという検討はついたのですが、
> for文やら継続条件やらがわかりません。
> 行の先頭に番号をつけたので、これに条件をひっかける方法
> でよいのでしょうか?
そこです。
番号のつけ方はわかりませんが、単純なカウントアップだと、LOGがあふれた場合(保存数以上になった場合)、過去のLOGが消されるので、番号で指定するとだんだん表示LOGが減るとかになりかねないので、あまりお勧めはしません。(めんどくさい処理をやればできないことはないと思いますが。最初かの数字〜+50まで表示とか)
一番簡単なのは
# 掲示板の最大LOG保存数(これ以上になると古い順に削除)
$max = "30";
を50とかにしてしまうことですが、それは置いておいて。
open(IN, "$logfile");
while (<IN>) {
は、読み込んだ $logfile をすべて表示する(繰り返す)と言う意味なので、LOGが全部表示されます。
で、いくつかやり方はありますが、まずは
$i = 0;
while (<IN>) {
$i++;
if ($i>50) { last; }
と入れる。
要するに、$iを一ずつ足して、50異常になったら処理を終わらせると言うことです。
あとは、配列に入れて処理するとか。
別の機能でページ繰り(次のページとか前のページとか)があると尚いいかもしれない。(多分配列に入れてやらないと駄目だとおもう)
|