The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

ParseUtil::Domain - Utility for parsing a domain name into its constituent components.

SYNOPSIS

  use ParseUtil::Domain ':parse';

  my $processed = parse_domain("somedomain.com");
    #   $processed == { 
    #        domain => 'somedomain',
    #        domain_ace => 'somedomain',
    #        zone => 'com',
    #        zone_ace => 'com'
    #    }

DESCRIPTION

Just another tool for parsing domain names. This module makes use of the data provided by the Public Suffix List (http://publicsuffix.org/list/) to parse tlds. For completeness it tries to provide the respective puny encoded and decoded domain and tld part of a domain name. This includes proper handling of the LATIN SHARP S which is now allowed by DENIC eG (.de).

INTERFACE

parse_domain

Arguments
string

Examples:

  1. 'somedomain.com' 
  2. 'test.xn--o3cw4h'
  3. 'bloß.co.at'
  4. 'bloß.de'
Return
HASHREF

Examples:

  1.
  { 
    domain => 'somedomain',
    zone => 'com',
    domain_ace => 'somedomain',
    zone_ace => 'com'
   }

  2.
  { 
    domain => 'test',
    zone => 'ไทย',
    domain_ace => 'test',
    zone_ace => 'xn--o3cw4h'
   }

  3.
  { 
    domain => 'bloss',
    zone => 'co.at',
    domain_ace => 'bloss',
    zone_ace => 'co.at'
   }

  4.
  { 
    domain => 'bloß',
    zone => 'de',
    domain_ace => 'xn--blo-7ka',
    zone_ace => 'de'
   }

DEPENDENCIES

Net::IDN::Encode
Net::IDN::Punycode
Regexp::Assemble::Compressed
The Public Suffix List at http://publicsuffix.org/list/

BUGS

Although, not necessarily a bug, be wary of differences in encoding/decoding domains ending in .de. These domains are not namepreped like other tlds in order to allow for encoding of the German LATIN SHARP S.