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

SYNOPSIS
         use ParseUtil::Domain;

         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
       also tries to provide the puny encoded and decoded domain and tld part
       of a domain name.

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
       There could be problems handling some IDN domains and tlds
       (particularly for .de domains).  Due to the fact that the .de registry
       has recently started allowing the German "Sharp S" which is
       automatically converted to ss by most puny encoders, I've had to bypass
       the nameprep step by just using the encode_punycode subroutine
       directly.

:w


