Lets see. I've used the following DB's with perl:
- Oracle - because this is what was already there
- Sybase - same reason
- Solid - same reason
- MS Sql Server - same reason
- MySQL - because I wanted a free/fast DB
- Postgres - because its free and has better Unicode support than MySQL.
- Keyed files on a Tandem (like dbm files)
using middleware that presented
it as an ODBC data source - To get access to the data
on this "legacy" platform from scripts running on a Unix box.
IMHO, oracle takes too much work to admin. If you have a good
DBA around to install/configure/feed it I guess my
experiences with it would be better. Sybase is ok.
Solid is cool because it takes almost 0 work to admin once
it is set up. MySQL is one of my favorites, but I miss some
features that it lacks like subqueries and views. Postgres is
my current "favorite" because it gives me everything that MySQL
does with more "cool features", but I've only been messing
with it for 2 months so far. The tandem ODBC middleware product
wasn't fun to work with, but it was great because of what it
made possible: a web interface to a lecacy DB.
One feature that I want in a DB that only some support (and this
is kind of nit-picky):
case sensitive table and column names. My OS and programming
language are case sensitive, I think my DB should be the same way.
I generally avoid stored procs or database specific features.
The main reason for this is to make it easy to move from
one DB to another easily.
If I do use them I "hide" them behind a perl abstraction
layer, so I can move the functionality from the stored
proc to perl if I want to move to a DB that doesn't support
stored procs (or that just handles them diffrently).