---
name: "Zonemaster::DNSName"
section: "3pm"
platform: "linux"
package: "libzonemaster-perl"
version: "1.0.16-2.1"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/Zonemaster::DNSName"
---

# Zonemaster::DNSName(3pm)

class representing DNS names

## NAME

Zonemaster::DNSName - class representing DNS names

## SYNOPSIS

```
    my $name1 = Zonemaster::Name->new('www.example.org');
    my $name2 = Zonemaster::Name->new('ns.example.org');
    say "Yay!" if $name1->common($name2) == 2;
```

## ATTRIBUTES

- labels

  A reference to a list of strings, being the labels the DNS name is made up from.

## METHODS

- new($input) \_or\_ new({ labels =\> \\@labellist})

  The constructor can be called with either a single argument or with a reference to a hash as in the example above.

  If there is a single argument, it must be either a non-reference, a Zonemaster::DNSName object or a Zonemaster::Zone object.

  If it's a non-reference, it will be split at period characters (possibly after stringification) and the resulting list used as the name's labels.

  If it's a Zonemaster::DNSName object it will simply be returned.

  If it's a Zonemaster::Zone object, the value of its `"name"` attribute will be returned.

- **string()**

  Returns a string representation of the name. The string representation is created by joining the labels with dots. If there are no labels, a single dot is returned. The names created this way do not have a trailing dot.

  The stringification operator is overloaded to this function, so it should rarely be necessary to call it directly.

- **fqdn()**

  Returns the name as a string complete with a trailing dot.

- str\_cmp($other)

  Overloads string comparison. Comparison is made after converting the names to upper case, and ignores any trailing dot on the other name.

- **next\_higher()**

  Returns a new Zonemaster::DNSName object, representing the name of the called one with the leftmost label removed.

- common($other)

  Returns the number of labels from the rightmost going left that are the same in both names. Used by the recursor to check for redirections going up the DNS tree.

- prepend($label)

  Returns a new Zonemaster::DNSName object, representing the called one with the given label prepended.

- TO\_JSON

  Helper method for JSON encoding.
