---
name: "Dpkg::Control"
section: "3perl"
platform: "linux"
package: "dpkg"
version: "1.23.11-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Dpkg::Control/3perl"
---

# Dpkg::Control(3perl)

parse and manipulate official control-like information

## NAME

Dpkg::Control - parse and manipulate official control-like information

## DESCRIPTION

The Dpkg::Control object is a smart version of Dpkg::Control::Hash. It associates a type to the control information. That type can be used to know what fields are allowed and in what order they must be output.

The types are constants that are exported by default. Here's the full list:

- CTRL\_UNKNOWN

  This type is the default type, it indicates that the type of control information is not yet known.

- CTRL\_TMPL\_SRC

  Corresponds to the first source package stanza in a *debian/control* file in a Debian source package.

- CTRL\_TMPL\_PKG

  Corresponds to subsequent binary package stanza in a *debian/control* file in a Debian source package.

- CTRL\_REPO\_RELEASE

  Corresponds to a *Release* file in a repository.

- CTRL\_REPO\_SRC

  Corresponds to a stanza in a *Sources* file of a source package repository.

- CTRL\_REPO\_PKG

  Corresponds to a stanza in a *Packages* file of a binary package repository.

- CTRL\_DSC

  Corresponds to a .dsc file of a Debian source package.

- CTRL\_DEB

  Corresponds to the *control* file generated by dpkg-gencontrol (*DEBIAN/control*) and to the same file inside .deb packages.

- CTRL\_FILE\_BUILDINFO

  Corresponds to a .buildinfo file.

- CTRL\_FILE\_CHANGES

  Corresponds to a .changes file.

- CTRL\_FILE\_VENDOR

  Corresponds to a vendor file in `$Dpkg::CONFDIR`/origins/.

- CTRL\_FILE\_STATUS

  Corresponds to a stanza in dpkg's *status* file ($Dpkg::ADMINDIR/status).

- CTRL\_CHANGELOG

  Corresponds to the output of dpkg-parsechangelog.

- CTRL\_COPYRIGHT\_HEADER

  Corresponds to the header stanza in a *debian/copyright* file in machine readable format.

- CTRL\_COPYRIGHT\_FILES

  Corresponds to a files stanza in a *debian/copyright* file in machine readable format.

- CTRL\_COPYRIGHT\_LICENSE

  Corresponds to a license stanza in a *debian/copyright* file in machine readable format.

- CTRL\_TESTS

  Corresponds to a source package tests control file in *debian/tests/control*.

- CTRL\_INFO\_SRC

  Deprecated alias for CTRL\_TMPL\_SRC.

- CTRL\_INFO\_PKG

  Deprecated alias for CTRL\_TMPL\_PKG.

- CTRL\_PKG\_SRC

  Deprecated alias for CTRL\_DSC.

- CTRL\_PKG\_DEB

  Deprecated alias for CTRL\_DEB.

- CTRL\_INDEX\_SRC

  Deprecated alias for CTRL\_REPO\_SRC.

- CTRL\_INDEX\_PKG

  Deprecated alias for CTRL\_REPO\_PKG.

## METHODS

All the methods of Dpkg::Control::Hash are available. Those listed below are either new or overridden with a different behavior.

- $ctrl = Dpkg::Control-\>new(%opts)

  Create a new deb822 control object.

  Options:

  - **type**

    Set the deb822 control type, used to setup default values for other options.

  See **set\_options()** for more details.

- $ctrl-\>set\_options(%opts)

  Changes the value of one or more options.

  Options:

  - **type**

    Sets the deb822 control object type, used to define default values for others options.

    The output order is also set to match the ordered list returned by Dpkg::Control::Fields::field\_ordered\_list($type).

  - **name**

    Sets a textual description of the type of control information.

  - **allow\_pgp**

    Sets whether the parser accepts OpenPGP signatures around the deb822 control information.

    By default it is set to 1 for CTRL\_DSC, CTRL\_FILE\_CHANGES and CTRL\_REPO\_RELEASE and to 0 otherwise.

  - **allow\_duplicate**

    Sets whether the parser allows duplicate fields in deb822 control information.

  - **keep\_duplicate**

    Sets whether the parser will keep values for duplicate fields found in deb822 control information (when **allow\_duplicate** is enabled), as array references.

  - **drop\_empty**

    Sets whether empty fields are dropped during output.

    By default it is set to 0 for CTRL\_TMPL\_SRC and CTRL\_TMPL\_PKG and to 1 otherwise.

- $type = $ctrl-\>**get\_type()**

  Returns the type of control information stored. See the type parameter set during **new()**.

## CHANGES

### Version 1.05 (dpkg 1.22.12)

Deprecate types: CTRL\_INFO\_SRC, CTRL\_INFO\_PKG, CTRL\_PKG\_SRC, CTRL\_PKG\_DEB, CTRL\_INDEX\_SRC, CTRL\_INDEX\_PKG.

### Version 1.04 (dpkg 1.22.2)

New types: CTRL\_TMPL\_SRC, CTRL\_TMPL\_PKG, CTRL\_REPO\_SRC, CTRL\_REPO\_PKG, CTRL\_DSC, CTRL\_DEB.

### Version 1.03 (dpkg 1.18.11)

New type: CTRL\_FILE\_BUILDINFO.

### Version 1.02 (dpkg 1.18.8)

New type: CTRL\_TESTS.

### Version 1.01 (dpkg 1.18.5)

New types: CTRL\_REPO\_RELEASE, CTRL\_COPYRIGHT\_HEADER, CTRL\_COPYRIGHT\_FILES, CTRL\_COPYRIGHT\_LICENSE.

### Version 1.00 (dpkg 1.15.6)

Mark the module as public.
