Net::RDAP::JCard::Address(3p)

NAME
Net::RDAP::JCard::Address - a module representing a postal address in a Net::RDAP::JCard object.

SYNOPSIS
    #
    # get an object by calling the jcard() method on a Net::RDAP::Object::Entity
    #
    my $jcard = $entity->jcard;

    #
    # get the first address. You can also uses $jcard->addresses() to get all
    # ADR properties.
    #
    my $adr = $jcard->first_address;

    if ($adr->structured) {
        #
        # This is a structured address so we can extract the individual components:
        #

        map { say "Street: ".$_ } @{$adr->street};
        say "Locality: ".$adr->locality;
        say "Region: ".$adr->region;
        say "Postal Code: ".$adr->code;
        say "Country: ".($adr->cc || $adr->country);

    } else {
        #
        # This is an unstructured address, so just print it:
        #
        say "Address:".$adr->address;

    }

DESCRIPTION
The vCard <https://www.rfc-editor.org/rfc/rfc6350.html#section-6.3.1> and jCard <https://datatracker.ietf.org/doc/html/rfc7095#section-3.3.1.3> representations of postal address data can be quite difficult to deal with, and often cause difficulties.

Net::RDAP::JCard::Address provides an ergonomic interface to "ADR" properties in jCard objects.

To get a Net::RDAP::JCard::Address, use the first_address() or addresses() methods of Net::RDAP::JCard to get an array of address objects.

METHODS
Net::RDAP::JCard::Address inherits from Net::RDAP::JCard::Property, and therefore inherits all that module's methods, in addition to the following:

  ADDRESS TYPE
    $structured = $adr->structured;

Returns true if the address is "structured" (see Section 3.3.1.3 of RFC 7095 <https://datatracker.ietf.org/doc/html/rfc7095#section-3.3.1.3>).

  FLAT ADDRESS
    say $adr->address;

Returns a multi-line text string containing the address. For "unstructured" addresses, this is the only format available, and is therefore the simplest way to display the address information.

  P.O. BOX NUMBER
    say $adr->pobox;

Returns the Post Office box number, or "undef".

  EXTENDED ADDRESS
    say $adr->extended;

Returns the "extended" address component, such as the apartment or suite number, or "undef".

  STREET ADDRESS
    map { say $_ } @{$adr->street};

Some structured addresses have a single street address, but some have multiple street addresses which are represented as an arrayref.

This method will always return an arrayref, which may contain zero, one, or many values.

  LOCALITY
    say $adr->locality;

Returns the locality, or "undef".

  REGION
    say $adr->region;

Returns the region, or "undef".

  POSTAL CODE
    say $adr->code;

Returns the postal code, or "undef".

  COUNTRY CODE
    say $adr->cc;

Returns the ISO-3166-alpha2 country code (see Section 3.1 of RFC 8605 <https://www.rfc-editor.org/rfc/rfc8605.html#section-3.1>), or "undef".

  COUNTRY NAME
    say $adr->country;

Returns the country name, or "undef".

COPYRIGHT
Copyright 2018-2023 CentralNic Ltd, 2024-2025 Gavin Brown. For licensing information, please see the "LICENSE" file in the Net::RDAP distribution.