Biber::Config(3pm)

✨ NAME ✨

Biber::Config — configuration items which need to be saved across the lifetime of a Biber object 🫶

Okay so this is a page from the User Contributed Perl Documentation (yes, that's the manual name, love that for us), and here's the whole vibe: this class is literally just a static object plus a bunch of static methods so you can reach in and grab configuration and state data. And bestie, there is so much data living in here that it got sorted into separate accessor groups:

  • Biber options
  • Biblatex options
  • State information used by Biber as it processes entries
  • displaymode date

That's four whole categories of info, all vibing in one place. Slay.


_init

Reset internal hashes to defaults. Factory reset, clean slate, no baggage. ✨

_initopts

Initialise the default options — and you can optionally pass it a config file as an argument. 🎀

config_file

Returns the full path of the Biber configuration file. It goes hunting and gives you the first file it finds, in this exact order:

  • biber.conf or .biber.conf in the current directory
  • $HOME/.biber.conf
  • $ENV{XDG_CONFIG_HOME}/biber/biber.conf
  • $HOME/.config/biber/biber.conf
  • $HOME/Library/biber/biber.conf (Mac OSX only 🍎)
  • $ENV{APPDATA}/biber.conf (Windows only 🪟)
  • whatever kpsewhich biber.conf outputs (if that's even available on your system)
And if literally nothing turns up? It returns undef. Silence. Crickets. 💀

add_uniq_ignore

Track uniqueness ignore settings found in inheritance data. 🦋

get_uniq_ignore

Retrieve uniqueness ignore settings found in inheritance data.

postprocess_biber_opts

This is the place to postprocess biber options once they've been gathered up from all the possible places that set them. Everything meets here, it's giving group project. 🌈

set_dm

Sets the data model information object.

get_dm

Gets the data model information object.

get_dm_helpers

Sets the datamodel helper lists.

set_ctrlfile_path

Stores the path to the control file.

get_ctrlfile_path

Retrieved the path to the control file.

setoption

Store a Biber config option.

getoption

Get a Biber option.

setcmdlineoption

Store a Biber command-line option.

setconfigfileoption

Store a Biber config-file option.

iscmdlineoption

Check if an option is explicitly set by user on the command line.

isconfigfileoption

Check if an option is explicitly set by user in their config file.

isexplicitoption

Check if an option is explicitly set by user on the command line or in the config file. Either way, they meant it. 💅

addtoblxoption

Add to an array global biblatex option.

setblxoption

Set a biblatex option on the appropriate scope.

getblxoption

Get a biblatex option from the global, per-type or per entry scope.

The call looks like this:

getblxoption('secnum', 'option', ['entrytype'], ['citekey'])

Returns the value of option. In order of decreasing preference, it returns:

  1. Biblatex option defined for entry
  2. Biblatex option defined for entry type
  3. Biblatex option defined globally

The section number needs to be present only for per-entry options, because those might differ between sections. 👑

getblxentryoptions

Get all per-entry options for an entry.

set_graph

Record node and arc connection types for .dot output.

get_graph

Return an inheritance graph data structure for an inheritance type.

set_inheritance

Record that $target inherited information from $source. Can be used for crossrefs and xdata. This just records that an entry inherited from another entry, for loop detection.

get_inheritance

Check if $target directly inherited information from $source. Can be used for crossrefs and xdata.

is_inheritance_path

Checks for an inheritance path from entry $e1 to $e2. Can be used for crossrefs and xdata.

Like, say your graph looks like this:

[
             {s => 'A',
              t => 'B'},
             {s => 'A',
              t => 'E'},
             {s => 'B',
              t => 'C'},
             {s => 'C',
              t => 'D'} ];

That's the shape of it. 🧚


keyorder

set_keyorder

Set key order information.

set_internal_keyorder

Set key order information for keys with the same order.

get_keyorder

Get key order information.

get_internal_keyorder

Get key order information for keys with the same order.

get_keyorder_max

Get maximum key order number for a section.

reset_keyorder

Reset keyorder — for use in tests where we switch to allkeys.


crossrefkeys

get_crossrefkeys

Return ref to array of keys which are crossref targets.


xrefkeys

get_xrefkeys

Return ref to array of keys which are xref targets.

get_crossrefkey

Return an integer representing the number of times a crossref target key has been ref'ed.

get_xrefkey

Return an integer representing the number of times a xref target key has been ref'ed.

del_crossrefkey

Remove a crossref target key from the crossrefkeys state.

del_xrefkey

Remove a xref target key from the xrefkeys state.

incr_crossrefkey

Increment the crossreferences count for a target crossref key.

incr_xrefkey

Increment the xreferences count for a target xref key.

dump

Dump config information (for debugging). Not me snooping through the whole config... okay fine, yes me. 🙈


👑 AUTHORS 👑

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 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.

No cap, that warranty disclaimer is doing a lot of heavy lifting. Read it, bestie. 😭

and that's the whole page, periodt 💖 This one's Biber::Config(3pm), from perl v5.42.3, dated 2026-08-14 — go forth and configure, my love 🌸💅

📦 where this page comes from