in reply to Re^3: Class::DBI::Loader error: Can't locate object method "set_db"
in thread Class::DBI::Loader error: Can't locate object method "set_db"

Your question provided the solution!

I checked that Class::DBI::Loader::mysql was up-to-date, but that was installed with Class::DBI::Loader, which I just installed.

I didn't think of Class::DBI::mysql at all, both because I didn't know about that module in particular, and, secondly, because I already had working code using Class::DBI with a mysql database. However, when I checked, Class::DBI::mysql was not installed, and installing it solved the problem.

This really ought to be documented somewhere--I didn't see it in Class::DBI::Loader, Class::DBI::Loader::Generic, or Class::DBI::Loader::mysql. Now that I know what I'm looking for, however, I do see it in the buglist.

It seems odd that installing Class::DBI::Loader::mysql wouldn't also handle Class::DBI::mysql if it is also required, especially since Class::DBI::Loader::* were all included with a Class::DBI::Loader install. Or it could have required that I install the desired Class::DBI::Loader:: module, and at that point install the Class::DBI:: requirement. Corion has suggested that perhaps there were some skipped tests which would have alerted me when installing, and I must confess I never read the installation reports unless there is a fatal error (and, with a MySQL related module, I often don't even read those, as the problem is usually that the database has a password). I guess that's why this is on the bug list.