---
name: "Biber::DataList"
section: "3pm"
platform: "linux"
package: "biber"
version: "1:2.22-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Biber::DataList"
---

# Biber::DataList(3pm)

Biber::DataList objects

## NAME

Biber::DataList - Biber::DataList objects

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

### 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
```

### get\_filters

```
    Gets all filters for a list object
```

### instantiate\_entry

```
  Do any dynamic information replacement for information
  which varies in an entry between lists. This is information which
  needs to be output to the .bbl for an entry but which is a property
  of the reference context and not the entry per se so it cannot be stored
  statically in the entry and must be retrieved from the specific datalist
  when outputting the entry.
```

### namelist\_differs\_index

```
    Returns the index where the name list begins to differ from any other list
    Assuming these lists
    [a, b]
    [a, b, d, e, f, g, h, i, j]
    [a, b, d, e, f]
    [a, b, e, z, z, y]
    namelist_differs_index([a, b, c, d, e]) -> 2
    namelist_differs_index([a]) -> 1
```

### namelist\_differs\_nth

```
    Returns true if some other name list differs at 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]
```

## 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 & LICENSE

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.
