一日分だけのカウンターにしたい

[上に] [前に] [次に]
大倉章 1999/04/28(水) 20:31:23
ごくシンプルなカウンターで、

#! /usr/local/bin/perl
#ssiテキストカウンター
#shift;
#$_ = '_'.$_ if $_; = 1;

open(IN,"count0.txt");$count1 = <IN>;close(IN);
open(IN,"count1.txt");$count2 = <IN>;close(IN);

if ($count1 > $count2){
$maxcount=$count1;$i='1';
}else{
$maxcount=$count2;$i='0';
}
$maxcount++;
if (($maxcount % 10) > 0){if ((time % 4) >2){$maxcount++;}}
open(OUT,">count$i.txt");
eval 'flock(OUT,2);';print OUT $maxcount;eval
'flock(OUT,8);';close(OUT);
print $maxcount;
exit;

というのを使っています。
かなり頑丈で便利なので、これで1日分のアクセスを数えて、
日付が変わったら0にもどるように改造したいです。
よろしくお願いします。

コルン 1999/04/28(水) 23:52:50
 flockの使い方が間違ってます。

 ・・・という、質問とはまったく違う問題はさておき、
やっぱり、statを使うか、もしくはデータ内に日付を
収納するしか無いでしょう。
http://www.tohoho-web.com/wwwperl2.htm#stat

 まぁ他にも、-Mを使うという手もあります。
 -Mは、前回変更時から、現在まで(正確には、Perl起動時
までの時間らしいです)の日数を、小数で返しますから、
現在の時間と照らし合わせればOKです。
 でも、これはハッキリ言って、面倒です。
(けど、出来ない事は無いです)
http://www.tohoho-web.com/wwwperl1.htm#FileTest


 でも、一番良いのは、やっぱりカウントファイル内に、
日付データも収納する事ですよ。
(日付データだけ、別にファイル作るってのも、
一応は在りでしょう。・・・オイラはしませんけど)

[上に] [前に] [次に]