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.