Collections are now known as SPOPS, or Simple Perl Object Persistence with Security. (Although I'm working on the security right now :)
SPOPS aims to be storage-mechanism independent, although almost all of the work so far has been done with the DBI backend. (I've used both Sybase and MySQL with it, and porting it to a different db should be pretty easy, as long as they support a the $sth->{TYPE} and {NAME} interface and you can reasonably abstract out an ID-generation mechanism. (Sequences, for instance, should not be a problem at all.)) I'm hoping to implement the User/Group stuff not only using the DBI interface but also LDAP, which would be neat-o. (It would also likely expose some subconscious design decisions influenced by my RDBMS mentality...)
They're now fairly well extricated from the other projects that were using them, which should make it easier for me to consolidate the three or four versions that are floating around my ~/work directory. I think I'm going to upgrade my website to use them later on today so I can test out the user/group stuff.
They are also much easier to use now, thanks to Rusty's prodding. Instead of forcing you to use get/set accessor methods for an object, the data are now in a tied hash, so you can simply do: $user->{first_name} = 'Chris' to set information and then do $user->save; to save the user object. No context switching, and using a tied hash means that you can interpolate the values into strings (or templates...) without a second thought. Cool.
You can nab them, along with a working-and-rapidly-developing banner ad management system that uses them (called AdHomonym), at the AdHomonym website. I'm not quite ready to put them up on CPAN yet. Once I get an LDAP interface written and reasonably tested (or maybe re-port the interface to GDBM files from a six-month old project), then I'll feel decent about it.
Anyway, demos of the ad system coming soon.
(Originally posted elsewhere)