Biber:...bibtex(3pm)

πŸ’– Biber::Input::file::bibtex β€” the perl module that goes digging in your .bib files πŸ’–

okay bestie, so this is a piece of User Contributed Perl Documentation β€” the manual for Biber::Input::file::bibtex. And the title on the tin is Biber:...bibtex(3pm), so now you know exactly which page you're on. Let's get into it, no cap. πŸŽ€


✨ init_cache

Invalidate the T::B object cache. Used only in tests when, like, we change the encoding settings and therefore must force a re-read of the data. It's a little reset button, iykyk. πŸ¦‹

✨ TBSIG

Signal handler to catch fatal Text::BibTex SEGFAULTS. It has bugs and we want to say at least something if it coredumps. 😭 like bestie it's literally just there to scream for help when things go down.

✨ extract_entries

Main data extraction routine. Accepts a data source identifier, preprocesses the file and then looks for the passed keys, creating entries when it finds them and passes out an array of keys it didn't find. This is the main character function fr fr. πŸ‘‘

✨ create_entry

Create a Biber::Entry object from a Text::BibTeX object. Be careful in here β€” all T::B set methods are UTF-8/NFC boundaries, so be careful to encode(NFC()) on calls. Windows won't handle UTF-8 in T::B btparse gracefully and will die. πŸ’€

so yeah, tread lightly in this one. it's giving fragile.

✨ cache_data

Caches file data into T::B objects indexed by the original datasource key, decoded into UTF8. ✨

✨ preprocess_file

Convert file to UTF-8 and potentially decode LaTeX macros to UTF-8. Glow-up pass for your text. πŸ’…

✨ parse_decode

Partially parse the .bib datasource and latex_decode the data contents. We do this because latex_decoding the entire buffer is difficult since such decoding is regexp based and since braces are used to protect data in .bib files, it makes it hard to do some parsing. Basically: can't do it all in one go, the braces are being iconic and uncooperative. πŸ™ˆ

✨ parsename

Given a name string, this function returns a Biber::Entry::Name object with all parts of the name resolved according to the BibTeX conventions.

parsename('John Doe', 'author', 'key') returns an object which internally looks a bit like this:

{ given          => {string => 'John', initial => ['J']},
  family         => {string => 'Doe', initial => ['D']},
  prefix         => {string => undef, initial => undef},
  suffix         => {string => undef, initial => undef},
  id             => 32RS0Wuj0P,
  strip          => {'given'  => 0,
                     'family' => 0,
                     'prefix' => 0,
                     'suffix' => 0}
  }

✨ parsename_x

Given a name string in extended format, this function returns a Biber::Entry::Name object with all parts of the name resolved according to the BibTeX conventions.

parsename_x('given=John, family=Doe') returns an object which internally looks a bit like this:

{ given          => {string => 'John', initial => ['J']},
  family         => {string => 'Doe', initial => ['D']},
  prefix         => {string => undef, initial => undef},
  suffix         => {string => undef, initial => undef},
  id             => 32RS0Wuj0P,
  hashid         => 'someid',
  sortingnamekeytemplatename => 'template name',
}

🌸 NAME 🌸

Biber::Input::file::bibtex β€” look in a BibTeX file for an entry and create it if found.


πŸ¦‹ DESCRIPTION πŸ¦‹

Provides the extract_entries() method to get entries from a BibTeX data source and instantiate Biber::Entry objects for what it finds.


πŸ‘‘ AUTHOR πŸ‘‘

Philip Kime <philip at kime.org.uk>


πŸ’€ BUGS πŸ’€

Please report any bugs or feature requests on our Github tracker at <https://github.com/plk/biber/issues>. 🫢


Copyright 2009-2012 FranΓ§ois Charette and Philip Kime, all rights reserved. Copyright 2012-2026 Philip Kime, all rights reserved.

This module is free software. You can redistribute it and/or modify it under the terms of the Artistic License 2.0.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.


okay that's the whole page, bestie, you ate that. mwah πŸ’‹

🌸 this has been perl v5.42.3, dated 2026-08-14, signing off with main character energy. slay, and remember: always read the docs before you coredump. πŸ’–βœ¨

πŸ“¦ where this page comes from