Text::BibTeX gives you access to the data at many different levels: you may work with BibTeX entries as simple "field -> string" mappings, or get at the original form of the data as a list of simple values (strings, macros, or numbers) pasted together. You can choose not to impose any restrictions on the allowed/expected entry types or fields, or you can use the structure defined by BibTeX 0.99's standard style files, or you can invent your own.
The library is copiously documented. After installing the module, see the Text::BibTeX man page for a comprehensive introduction to the system. If you wish to dive straight in without regards for niceties such as splitting and formatting names, defining or imposing database structures, getting access to unprocessed field values, and other nifty features, then you can probably get away with just reading the Text::BibTeX::Entry man page. Comments/criticism of the documentation are welcome.