---
name: "Lintian::DepMap::Properties"
section: "3"
platform: "linux"
package: "lintian"
version: "2.15.0"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/Lintian::DepMap::Properties"
---

# Lintian::DepMap::Properties(3)

Dependencies with properties map/tree creator

## NAME

Lintian::DepMap::Properties - Dependencies with properties map/tree creator

## SYNOPSIS

```
    use Lintian::DepMap::Properties;
    my $map = Lintian::DepMap::Properties->new;
```

## DESCRIPTION

Lintian::DepMap::Properties is a simple layer between Lintian::DepMap and the application allowing nodes to have application-defined properties.

- add(node, \[dependencies\], \[ref to property\])

  Adds a node with possibly one or more dependencies and sets the `"node"`'s property to the ref, if defined.  The property must be a reference (it can be to a hash, an array, a function, an object, etc) and must be the last argument given to the method.

  E.g.

  ```
      $map->add('foo', {name => 'John Doe', age => 20});
  ```

- addp(node\[, prefix, dependency\[, dependency...\]\], \[ref to property\])

  Adds the given `"node"` to the map marking any third or more parameters, after prefixing them with `"prefix"`, as its dependencies and sets the `"node"`'s property to the ref, if defined. See **add()**'s description for more information about properties. E.g.

  ```
      # pA and pB have no dependency:
      $map->addp('pA', {name => 'John Doe'});
      $map->addp('pB', {name => 'Jane Doe'});
      # Df depends on pA and pB:
      $map->addp('Df', 'p', 'A', 'B', {name => 'Doe Family'});
  ```

- getp(node)

  Returns the reference to the given `"node"`'s properties.

  E.g.

  ```
      # prints John Doe
      print $map->getp('foo')->{'name'};
      # changes the value of 'name'
      $map->getp('foo')->{'name'} = 'Jane Doe';
      # prints Jane Doe
      print $map->getp('foo')->{'name'};
  ```

## AUTHOR

Originally written by Raphael Geissert \<atomo64@gmail.com\> for Lintian.
