Biber::DataList(3pm)

πŸ’– Biber::DataList πŸ’–

okay bestie, gather round, because this is the Biber::DataList(3pm) page from the User Contributed Perl Documentation and it is long β€” so long that it comes in multiple parts. We're doing part 1 right now. Grab a snack. πŸ“


🌸 NAME 🌸

Biber::DataList β€” Biber::DataList objects ✨

Like, that's the whole name section. It's giving mysterious. It's giving "the object does the thing, go read the methods." πŸ’…


πŸŽ€ METHODS πŸŽ€

Every single one, no skips, no cuts, we're not leaving anybody behind:

  • new β€” Initialize a Biber::DataList object 🫢
  • set_section β€” Sets the section of a data list
  • get_section β€” Gets the section of a data list
  • reset_state β€” Resets all state data. Used mainly in tests which call Biber::prepare() multiple times without re-creating datalists πŸ™ˆ
  • incr_seenpa β€” Increment the count of occurrences of a primary author base name if it has a different non-base part. Basically: how many variants of the basename are there in the dlist? πŸ‘€
  • get_seenpa β€” Get the count of unique (i.e. with different hash) occurrences of a primary author base name
  • reset_entryfields β€” Resets all entryfield data in a list
  • get_entryfield β€” Retrieves per-list datafield information for an entry
  • set_entryfield β€” Records per-list datafield information for an entry
  • add_uniquenamecount β€” Add a name to the list of name contexts which have the name in it (only called for visible names) πŸ‘‘
  • add_uniquenamecount_all β€” Add a name to the list of name contexts which have the name in it (called for all names)
  • get_uniquelistcount β€” Get the number of uniquelist entries for a (possibly partial) list
  • add_uniquelistcount β€” Increment the count for a list part to the data for a name
  • add_uniquelistcount_final β€” Increment the count for a complete list to the data for a name
  • add_uniquelistcount_minyear β€” Increment the count for a list and year for a name. Used to track uniquelist = minyear πŸ—“οΈ
  • get_uniquelistcount_minyear β€” Get the count for a list and year for a name. Used to track uniquelist = minyear
  • get_uniquelistcount_final β€” Get the number of uniquelist entries for a full list
  • reset_uniquelistcount β€” Reset the count for list parts and complete lists
  • reset_uniquenamecount β€” Reset the list of names which have the name part in it
  • get_basenamestring β€” Get a basenamestring for a particular name
  • get_namestring β€” Get a namestring for a particular name
  • get_namestrings β€” Get namestrings for a particular name
  • set_namedis β€” Set name disambiguation metadata
  • is_unbasepart β€” Return boolean to say if a namepart is a base part according to template which created the information
  • get_namehash β€” Get hash for a name
  • set_namehash β€” Set hash for a name
  • get_unmininfo β€” Get uniquename minimalness info for a name
  • set_unmininfo β€” Set uniquename minimalness info for a name
  • get_namedisschema β€” Get a name disambiguation schema for a name
  • get_unsummary β€” Get legacy uniquename summary for a name
  • get_unpart β€” Get uniquename summary part for a name
  • get_unparts β€” Get uniquename parts for a name
  • set_unparts β€” Set uniquename parts for a name
  • _get_uniquename β€” Get the list of name contexts which contain a name. Mainly for use in tests πŸ§ͺ
  • get_uniquename β€” Get uniquename for a name
  • set_uniquename β€” Set uniquename for a name
  • reset_uniquename β€” Reset uniquename for a name
  • get_uniquename_all β€” Get uniquename for a name, regardless of visibility
  • set_uniquename_all β€” Set uniquename for a name, regardless of visibility
  • count_uniquelist β€” Count the names in a string used to determine uniquelist.
  • get_uniquelist β€” Gets a uniquelist setting for a namelist
  • set_uniquelist β€” Sets a uniquelist setting for a namelist
  • get_visible_cite β€” Gets citation name list visibility
  • set_visible_cite β€” Gets citation name list visibility
  • get_visible_bib β€” Gets bib name list visibility
  • set_visible_bib β€” Gets bib name list visibility
  • get_visible_sort β€” Gets sort name list visibility
  • set_visible_sort β€” Gets sort name list visibility
  • get_visible_alpha β€” Gets alpha name list visibility
  • set_visible_alpha β€” Gets alpha name list visibility
  • get_numofuniquenames β€” Get the number of uniquenames entries for a visible name
  • get_numofuniquenames_all β€” Get the number of uniquenames entries for a name
  • get_unul_done β€” Return a boolean saying whether uniquenename+uniquelist processing is finished (yes, uniquenename, that's the actual spelling, I don't make the rules) πŸ’€
  • set_unul_changed β€” Set a boolean saying whether uniquename+uniquelist has changed
  • reset_seen_extra β€” Reset the counters for extra* 🧹
  • incr_seen_extradate β€” Increment and return the counter for extradate
  • incr_seen_extraname β€” Increment and return the counter for extraname
  • incr_seen_labelname β€” Increment and return a counter used to track extraname
  • incr_seen_extratitle β€” Increment and return the counter for extratitle
  • incr_seen_extratitleyear β€” Increment and return the counter for extratitleyear
  • incr_seen_extraalpha β€” Increment and return the counter for extraalpha
  • get_seen_nametitledateparts β€” Get the count of an labelname/dateparts combination for tracking extradate. It uses labelyear plus name as we need to disambiguate entries with different labelyear (like differentiating 1984--1986 from just 1984) πŸ”₯
  • incr_seen_nametitledateparts β€” Increment the count of an labelname/labeltitle+dateparts combination for extradate.

We pass in the name/title and date strings separately as we have to be careful and only increment this counter beyond 1 if there is a name/title component. Otherwise, extradate gets defined for all entries with no name/title but the same year etc. ⚠️

  • get_seen_labelname β€” Get the count of a labelname hash for tracking extraname
  • get_seen_nametitle β€” Get the count of an labelname/labeltitle combination for tracking extratitle.
  • incr_seen_nametitle β€” Increment the count of an labelname/labeltitle combination for extratitle.

We pass in the name and year strings separately as we have to be careful and only increment this counter beyond 1 if there is a title component. Otherwise, extratitle gets defined for all entries with no title. ⚠️

  • get_seen_titleyear β€” Get the count of an labeltitle/labelyear combination for tracking extratitleyear
  • incr_seen_titleyear β€” Increment the count of an labeltitle/labelyear combination for extratitleyear.

We pass in the title and year strings separately as we have to be careful and only increment this counter beyond 1 if there is a title component. Otherwise, extratitleyear gets defined for all entries with no title. ⚠️

  • reset_workuniqueness β€” Reset various work uniqueness counters
  • get_seenname β€” Get the count of occurrences of a labelname or labeltitle
  • incr_seenname β€” Increment the count of occurrences of a labelname or labeltitle
  • get_seentitle β€” Get the count of occurrences of a labeltitle
  • incr_seentitle β€” Increment the count of occurrences of a labeltitle
  • get_seenbaretitle β€” Get the count of occurrences of a labeltitle when there is no labelname
  • incr_seenbaretitle β€” Increment the count of occurrences of a labeltitle when there is no labelname
  • get_seenwork β€” Get the count of occurrences of a labelname and labeltitle
  • incr_seenwork β€” Increment the count of occurrences of a labelname and labeltitle
  • incr_la_disambiguation β€” Increment a counter to say we have seen this labelalpha
  • get_la_disambiguation β€” Get the disambiguation counter for this labelalpha. Return a 0 for undefs to avoid spurious errors. 🫠
  • set_sortingtemplatename β€” Sets the sortingtemplate name of a data list
  • get_attrs β€” Gets the attributes of a data list
  • get_sortingtemplatename β€” Gets the sortingtemplatename of a data list
  • set_sortingnamekeytemplatename β€” Sets the sortingnamekeytemplate name of a data list
  • get_sortingnamekeytemplatename β€” Gets the sortingnamekeytemplatename of a data list
  • set_uniquenametemplatename β€” Sets the uniquenametemplate name of a data list
  • get_uniquenametemplatename β€” Gets the uniquenametemplate name of a data list
  • set_labelalphanametemplatename β€” Sets the labelalphanametemplate name of a data list
  • get_labelalphanametemplatename β€” Gets the labelalphanametemplate name of a data list
  • set_namehashtemplatename β€” Sets the namehashtemplate name of a data list
  • get_namehashtemplatename β€” Gets the namehashtemplate name of a data list
  • set_sortinit_collator β€” Sets the sortinit collator for this list
  • get_sortinit_collator β€” Gets the sortinit collator for this list
  • get_labelprefix β€” Gets the labelprefix setting of a data list
  • set_labelprefix β€” Sets the labelprefix setting of a data list
  • set_name β€” Sets the name of a data list
  • get_name β€” Gets the name of a data list
  • set_type β€” Sets the type of a data list
  • get_type β€” Gets the type of a section list
  • set_keys β€” Sets the keys for the list
  • get_keys β€” Gets the keys for the list
  • count_keys β€” Count the keys for the list
  • get_namelistdata β€” Gets name list data
  • set_namelistdata β€” Saves name list data
  • get_labelalphadata β€” Gets labelalpha field data
  • set_labelalphadata β€” Saves labelalpha data
  • get_labelalphadata_for_key β€” Gets labelalpha field data for a key
  • set_labelalphadata_for_key β€” Saves labelalpha field data for a key
  • set_extradatedata_for_key β€” Saves extradate field data for a key
  • set_extranamedata_for_key β€” Saves extraname field data for a key
  • get_extranamedata_for_key β€” Gets the extraname field data for a key
  • set_extradatedata β€” Saves extradate field data for all keys
  • get_extradatedata_for_key β€” Gets the extradate field data for a key
  • set_extratitledata_for_key β€” Saves extratitle field data for a key
  • set_extratitledata β€” Saves extratitle field data for all keys
  • get_extratitledata β€” Gets the extratitle field data for a key
  • set_extratitleyeardata_for_key β€” Saves extratitleyear field data for a key
  • set_extratitleyeardata β€” Saves extratitleyear field data for all keys
  • get_extratitleyeardata β€” Gets the extratitleyear field data for a key
  • set_extraalphadata_for_key β€” Saves extraalpha field data for a key
  • set_extraalphadata β€” Saves extraalpha field data for all keys
  • get_extraalphadata β€” Gets the extraalpha field data for a key
  • get_sortdataschema β€” Gets the sortdata schema for a sortlist
  • set_sortdataschema β€” Saves the sortdata schema for a sortlist
  • set_sortdata β€” Saves sorting data in a list for a key
  • get_sortdata_for_key β€” Gets the sorting data in a list for a key
  • set_sortinitdata_for_key β€” Saves sortinit data for a specific key
  • set_sortinitdata β€” Saves sortinit data for all keys
  • get_sortinit_for_key β€” Gets the sortinit in a list for a key
  • set_sortingtemplate β€” Sets the sortingtemplate of a list
  • get_sortingtemplate β€” Gets the sortingtemplate of a list
  • add_filter β€” Adds a filter to a list object 🌈

and that's only part 1 bestie, there's more coming, don't go anywhere πŸ¦‹

  • get_filters β€” hands you back every filter chillin' on a list object. That's it, that's the whole vibe. ✨
  • instantiate_entry β€” okay so this one does the dynamic info replacement πŸ’… for stuff that changes per-entry depending on which list it's in. Like, this is information that has to go out into the .bbl for an entry, but lowkey it's a property of the reference context and not the entry itself 🫢. So it literally cannot be stored statically in the entry, no cap β€” it has to be pulled from the specific datalist at the moment you're outputting the entry. fr fr. 🌸
  • namelist_differs_index β€” returns the index where a name list starts to differ from any other list πŸ‘‘.

So picture these lists:

[a, b]
[a, b, d, e, f, g, h, i, j]
[a, b, d, e, f]
[a, b, e, z, z, y]

then:

namelist_differs_index([a, b, c, d, e]) -> 2
namelist_differs_index([a]) -> 1

the way it just finds the divergence point... iconic behavior honestly. πŸ”₯

  • namelist_differs_nth β€” returns true if some other name list differs at the passed nth place and is at least as long. πŸ’–
namelist_differs_nth([a, b, c, d, e], 3) = 1

if there is another name list like any of these:

[a, b, d, e, f]
[a, b, e, z, z, y]

length matters, bestie, don't forget it πŸŽ€


🌈 AUTHORS 🌈

Philip Kime <philip at kime.org.uk> β€” the legend themselves πŸ’œ


πŸ’€ BUGS πŸ’€

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

not me asking you to actually file the issue instead of just complaining in the group chat... iykyk πŸ™ˆ

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


and that's a wrap on Biber::DataList(3pm), bestie 🫢 this gorgeousness shipped as perl v5.42.3, dated 2026-08-14, straight from the User Contributed Perl Documentation crew β€” go forth and filter your datalists, mwah πŸ’‹πŸŒΈ

πŸ“¦ where this page comes from