Text::BibTeX --------------------------------------------------------------------------- Text::BibTeX is a Perl library for reading, parsing, and processing BibTeX files. It is the Perl half of btOOL, a pair of libraries for dealing with BibTeX data. 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 nany 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. In addition to the man pages embedded in each module (and available after installation), Greg Ward has written a technical report describing btOOL (the 0.x versions), with the btparse and Text::BibTeX documentation included as appendices. The whole report is just over 100 pages, around 45 of which make up the Text::BibTeX documentation (the btparse documentation is a further 30 pages). You can find it at the btOOL home page: http://www.gerg.ca/software/btOOL/ INSTALLATION --------------------------------------------------------------------------- To install Text::BibTeX you need Perl 5.26 or later and a C99 compiler. The C library at its core (in src/, derived from Greg Ward's btparse) is compiled into the Perl module, so nothing else needs to be installed. To build the module use the usual set of commands for a Module::Build distribution: perl Build.PL ./Build ./Build test And then install it ./Build install The C library can also be built on its own, with sanitizers, for testing and fuzzing: see fuzz/Makefile.