Lots of modules seem to have lots of methods for (sort of) doing the same thing, but you get used to them. If I haven't used DBI for a while, I sometimes forget the differences between selectrow_array, selectrow_arrayref, selectrow_hashref, selectall_arrayref, selectall_hashref, selectcol_arrayref etc - and these are just the methods for the database handles - there are the statement ones too. There are so many ways to get at the data you want! The method names are descriptive enough, but I often forget what parameters they all expect, etc. But a quick lookup of the doco sets me on my way.
I've only played with Class:DBI in passing, but I like what I've seen...