The core TeX Live infrastructure is written in Perl. This page links to the documentation for the implementation modules. For user-level documentation and more, see the main TL documentation page.
|TeXLive::TLConfFile||TeX Live generic configuration files||source|
|TeXLive::TLConfig||TeX Live configuration parameters||source|
|TeXLive::TLCrypto||TeX Live checksums and cryptographic signatures||source|
|TeXLive::TLDownload||TeX Live persistent downloads via LWP||source|
|TeXLive::TLPDB||TeX Live Package Database (texlive.tlpdb) module||source|
|TeXLive::TLPOBJ||TeX Live Package Object (.tlpobj) module||source|
|TeXLive::TLPSRC||TeX Live Package Source (.tlpsrc) module||source|
|TeXLive::TLPaper||TeX Live paper size module||source|
|TeXLive::TLTREE||TeX Live tree of all files||source|
|TeXLive::TLUtils||TeX Live infrastructure miscellany||source|
|TeXLive::TLWinGoo||TeX Live Windows-specific support||source|
|TeXLive::TeXCatalogue||TeX Live access to the TeX Catalogue from CTAN||source|
In principle, everything is subject to change; we don't promise any particular behavior will stay the same forever. In practice, however, the interfaces have been stable for years, and we have no plans to change the basic structure of the code.
Unfortunately, a couple modules have no documentation, and there is no overall documentation of how to use the code here. You can look at tlmgr, install-tl, and the various helper scripts in Master/tlpkg/bin for examples.
We have even less intention of changing the format of the plain text texlive.tlpdb file. It is more or less self-explanatory, and it's not particularly difficult to write your own code to parse it. Happy hacking.