I've just had some pain installing these 2 modules, so I've written up the experience
I ended up confused, but I hope you avoid at least some of the problems...
Installation guides are always a big help. But not sure why use BerkeleyDB when I can use DBD::SQLite.
This CPAN rating is spot on: http://cpanratings.perl.org/dist/BerkeleyDB#9728
WTF doesn't it try to locate the installed bdb header and library using commonly used methods? There are plenty of other distributions that are smart enough to do something similar.
If needing a local and persistent key/val store, I'll just use DB_File because cpanm installs it without trouble.
BerkeleyDB and SQLite are totally different animals. SQLite is good if you want to use SQL and don't need high concurrency or extreme speed. BerkeleyDB is good if your data looks like a hash and you need high concurrency or speed. BerkeleyDB is faster than just about anything for sharing data between processes on one machine in Perl. It beats the pants off memcached.
I try to write all code in Perl, but find I end up writing in bash, CSS, HTML, JS, and SQL, and doing database design, just to get anything done...