I haven't got the exact logistics of this one traced down yet. But, in a nutshell, trying to build perl from source with Berkeley DB support doesn't work unless db2 is uninstalled. Otherwise, perl's little test program gets db.h from db3 (ok so far), but -ldb picks up libdb.so.3 -> libdb2.so.3, which, umm, doesn't work quite the way perl would like it to. doesn't work the way I would like it to, either. ack! thppppxxxt!
Please fix this! There is a solution for DB_File I've found. The real root of this problem is that -L/lib -ldb works for db3, whereas -L/usr/lib -ldb gives you db2. You can modify the config.in file in the DB_File install to use /lib, and then you're okay. Otherwise this should be as simple as ln -s /lib/libdb-3.1.so /usr/lib/libdb.so.4 or such....