---
name: "Debian::Control"
section: "3pm"
platform: "linux"
package: "libdebian-source-perl"
version: "0.128"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Debian::Control"
---

# Debian::Control(3pm)

manage Debian source package control files

## NAME

Debian::Control - manage Debian source package control files

## SYNOPSIS

```
    my $c = Debian::Control->new();         # construct a new
    $c->read($file);                        # parse debian/control file
    $c->write($file);                       # write to file
    print $c->source->Source;
    print $c->source->Build_Depends;        # Debian::Dependencies object
    $c->binary->{'libfoo-perl'}->Description(
        "Foo Perl module\n" .
        " Foo makes this and that"
    );
```

## DESCRIPTION

Debian::Control can be used for representation and manipulation of Debian source package control files in an object-oriented way. It provides easy reading and writing of the *debian/control* file found in Debian source packages.

## FIELDS

- source

  An instance of Debian::Control::Stanza::Source class. Contains the source stanza of the Debian source package control file.

- binary

  A hash reference with keys being binary package names and values instances of Debian::Control::Stanza::Binary class. Contains the information of the binary package stanzas of Debian source package control file.

- binary\_tie

  A Tie::IxHash object tied to the **binary** hash.

## CONSTRUCTOR

- new

  Constructs a new Debian::Control instance.

  The `"source"` field is initialized with an empty instance of Debian::Control::Stanza::Source and `"binary"` field is initialized with an empty instance of Tie::IxHash.

## METHODS

- read *file*

  Parse "control" in debian and populate `"source"` and `"binary"` accessors.

  *file* can be either a file name or a string scalar reference.

- write *file*

  Writes a debian/control-like file in *file* with the contents defined in the `"source"` and `"binary"` fields.

  *file* can be either a file name, an opened file handle or a string scalar reference.

  All dependency lists are sorted before writing.

- is\_arch\_dep

  Returns true if the package is architecture-dependent. This is determined by the `"Architecture"` field of the first binary package. If it equals to `"all"`, then the package is architecture-independent; otherwise it is architecture-dependent.

  Returns *undef* if it is not possible to determine whether the package is architecture-dependent or not. This is the case when there are no binary package stanzas present or the first has no `"Archiitecture"` field.

## SEE ALSO

Debian::Control::Stanza::Source, Debian::Control::Stanza::Binary, Debian::Control::FromCPAN

## COPYRIGHT & LICENSE

Copyright (C) 2009 Damyan Ivanov dmn@debian.org

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

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.
