#!/usr/local/bin/perl

# GDBM_Fileの性質を利用したアクセスカウンタ gdbmc.pl
# v1.00 for Perl5/Unix use GDBM_File
# (c)rescue.ne.jp 11/MAR/1999

#--------------------------------------------------------------------------

#●データフォルダの場所(Path)
$path = "./count/data/";

# ※ SSIを記述するHTMLファイルから見た位置関係で！
# 　 最後に/で閉じるのを忘れずに。

#●初期カウント開始数
$start = 0;

# ※ data/フォルダ内に何もファイルがない状態(正しくはDBMがない状態)でのみ、
# 　 初期カウント開始数が適用されます。

#--------------------------------------------------------------------------

use GDBM_File;
use Fcntl;

$DBM = $path . "COUNT";

$retry = 5;
while (!tie %COUNT, GDBM_File, $DBM, O_CREAT|O_RDWR, 0666) {

	if (--$retry <= 0) { print "BUSY"; exit; }
	sleep(1);
}

if ($COUNT{'count'} == 0) { $COUNT{'count'} = $start; }
$COUNT{'count'} ++;

print $COUNT{'count'};
untie %COUNT;

exit;
