アプリ版:「スタンプのみでお礼する」機能のリリースについて

ログファイルが以下のように、
NAME=***&TITLE=***&HIDUKE=***=
NAME=***&TITLE=***&HIDUKE=***=
NAME=***&TITLE=***&HIDUKE=***=
となっています。

このログファイルの中身を表示させようとしたのですが、1番上のデータ(1番古いデータ)しか表示されません。
これを数行分(できれば最新5件、など)表示させたいのですが、どのようにすればいいのでしょうか?

よろしくお願いします。

A 回答 (2件)

open(NOTE,"*****log");#ログファイルを開き@DATEに入れます


@DATA = <NOTE>;
close(NOTE);

foreach(@DATA){#@DATEを改行で区切って$aに入れて、配列$Aに代入して行きます
($a)=split(/\n/,$_);
$A[$no]=$a;
$no++;
}
@A=reverse(@A);#配列の順番を逆にします。

for(i=0,i<4,i++){#配列を[0]から5回出力します。
print "$A[i] <BR>"
}

Perlで作っていると判断して、答えさせていただきます。
上記のような感じでやればいいと思います。違っていたらどなたか添削お願いします。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
以下のようにしてみましたが、うまくいきません。

#!/usr/local/bin/perl

open (NOTE,"top.log");
@DATA=<NOTE>;
close(NOTE);

foreach(@DATA){
($a)=split(/=/,$_);
$A[$no]=$a;
$no++;
}
@A=reverse(@A);

print "Content-type:text/html\n\n";
for(i=0,i<4,i++){
print "$A[i]<BR>\n";
}

うまく組みこめていないのだと思いますが…。
どこが違うか指摘お願いいたします。

お礼日時:2002/11/21 10:35

こんにちは、wolfwoodです。


う~ん、あせらないで作ってくださいね。
あとerror.logは見れませんか?
悪い部分はerror.logに出ますのでそれを見て修正してください。

>for(i=0,i<4,i++){
>print "$A[i]<BR>\n";
>}

変数のiに$が抜けています。
また、forの構文で条件を区切るのは,ではなく;です。

for($i=0;$i<4;$i++){
print "$A[$i]<BR>\n";
}

落ち着いて見直してくださいね。
    • good
    • 0
この回答へのお礼

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

>う~ん、あせらないで作ってくださいね。

はい、いつも注意されることなんです。
でもエラーになったりすると余計に焦ってしまって…。
申し訳ありません。

ありがとうございました。

お礼日時:2002/11/21 11:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!