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.