DBIx-Counter version 0.03 ========================= NAME DBIx::Counter - Manipulate named counters stored in a database WARNING This is the initial release! It has been tested to work with SQLite, Mysql, Postgresql and MS SQL Server, under perl 5.6 and 5.8. I would appreciate feedback, and some help on making it compatible with older versions of perl. I know 'use warnings' and 'our' don't work before 5.6, but that's where my historic knowledge ends. SYNOPSIS use DBIx::Counter; $c = DBIx::Counter->new('my counter', dsn => 'dbi:mysql:mydb', login => 'username', password => 'secret' ); $c->inc; print $c->value; $c->dec; DESCRIPTION This module creates and maintains named counters in a database. It has a simple interface, with methods to increment and decrement the counter by one, and a method for retrieving the value. It supports operator overloading for increment (++), decrement (--) and stringification (""). It should perform well in persistent environments, since it uses the connect_cached and prepare_cached methods of DBI. The biggest advantage over its main inspiration - File::CounterFile - is that it allows distributed, concurrent access to the counters and isn't tied to a single file system. Connection settings can be set in the constructor. The table name is configurable, but the column names are currently hard-coded to counter_id and value. This module attempts to mimick the File::CounterFile interface, except currently it only supports integer counters. The locking functions in File::CounterFile are present for compatibility only: they always return 0. INSTALLATION To install this module manually, type the following: perl Makefile.PL make make test make install Next, create a table in the database you're intending to use. You might use this SQL as a starting point: CREATE TABLE counters ( counter_id varchar(64) primary key, value int not null default 0 ); DEPENDENCIES This module requires these other modules and libraries: DBI and a working database. COPYRIGHT AND LICENCE Copyright (C) 2005 by Rhesa Rozendaal This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.2 or, at your option, any later version of Perl 5 you may have available.