壊れないカウンター
カウンター突然壊れた!
実は最近トップページに付けていたカウンターが1桁になってしまってた。
そうか、これが壊れるって事なんだね。まだ2000になって無いのに・・・
と言うわけで真剣に取り組む事にしました。
とにかくソース
#!/usr/local/bin/perl
open (cnt,"+<countfile") || die "Can't open count file!\n";
flock(cnt,2);
$count = <cnt>;
$count++;
seek(cnt,0,0);
print cnt $count;
close(cnt);
これで大丈夫かな?
flock を使う事で他のプロセスがロックしようとしたとき待ってくれるし
seek と print の間でキャンセルされても前の値は残っているし
いいみたいですな。