SYNOPSIS

      use feature 'say';
      use Data::Dumper;
      use MarpaX::ESLIF::URI;
    
      my  $http_url = "http://[2001:db8:a0b:12f0::1%25Eth0]:80/index.html";
      my  $http_uri = MarpaX::ESLIF::URI->new($http_url);
      say $http_uri->scheme;            # http
      say $http_uri->host;              # [2001:db8:a0b:12f0::1%Eth0]
      say $http_uri->hostname;          # 2001:db8:a0b:12f0::1%Eth0
      say $http_uri->path;              # /index.html
      say $http_uri->ip;                # 2001:db8:a0b:12f0::1%Eth0
      say $http_uri->ipv6;              # 2001:db8:a0b:12f0::1
      say $http_uri->zone;              # Eth0
    
      my  $file_url = "file:/c|/path/to/file";
      my  $file_uri = MarpaX::ESLIF::URI->new($file_url);
      say $file_uri->scheme;            # file
      say $file_uri->string;            # file:/c|/path/to/file
      say $file_uri->drive;             # c
      say $file_uri->path;              # /c|/path/to/file
      say Dumper($file_uri->segments);  # [ 'c|', 'path', 'to', 'file' ]
    
      my  $mail_url = "mailto:bogus\@email.com,bogus2\@email.com?"
                      . "subject=test%20subject&"
                      . "body=This%20is%20the%20body%20of%20this%20message.";
      my  $mail_uri = MarpaX::ESLIF::URI->new($mail_url);
      say $mail_uri->scheme;            # mailto
      say Dumper($mail_uri->to);        # bogus\@email.com, bogus2\@email.com
      say Dumper($mail_uri->headers);   # { 'subject' => 'test subject', 'body' => 'This is the body of this message.' }

SUBROUTINES/METHODS

 $class->new($str, $scheme)

    Returns a instance that is a MarpaX::ESLIF::URI::$scheme representation
    of $str, when $scheme defaults to _generic if there is no specific
    $scheme implementation, or if the later fails.

    All methods of MarpaX::ESLIF::URI::_generic are available, sometimes
    extended or modified by specific scheme implementations.

NOTES

    Percent-encoded characters are decoded to ASCII characters
    corresponding to every percent-encoded byte.

SEE ALSO

    MarpaX::ESLIF::URI::_generic, MarpaX::ESLIF::URI::file,
    MarpaX::ESLIF::URI::ftp, MarpaX::ESLIF::URI::http,
    MarpaX::ESLIF::URI::https, MarpaX::ESLIF::URI::mailto,
    MarpaX::ESLIF::URI::tag, MarpaX::ESLIF::URI::tel.

