The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Apache::URI - URI component parsing and unparsing

SYNOPSIS

  use Apache::URI ();
  my $uri = $r->parsed_uri;

  my $uri = Apache::URI->parse($r, "http://perl.apache.org/");

DESCRIPTION

This module provides an interface to the Apache util_uri module and the uri_components structure.

METHODS

Apache::parsed_uri

Apache will have already parsed the requested uri components, which can be obtained via the parsed_uri method defined in the Apache class. This method returns an object blessed into the Apache::URI class.

 my $uri = $r->parsed_uri;
parse

This method will parse a URI string into uri components which are stashed in the Apache::URI object it returns.

    my $uri = Apache::URI->parse($r, "http://www.foo.com/path/file.html?query+string");

This method is considerably faster than using URI::URL:

    timethese(5000, {
        C => sub { Apache::URI->parse($r, $test_uri) },
        Perl => sub { URI::URL->new($test_uri) },
    });

 Benchmark: timing 5000 iterations of C, Perl...
   C:  1 secs ( 0.62 usr  0.04 sys =  0.66 cpu)
   Perl:  6 secs ( 6.21 usr  0.08 sys =  6.29 cpu) 
unparse

This method will join the uri components back into a string version.

 my $string = $uri->unparse;
scheme
 my $scheme = $uri->scheme;
hostinfo
 my $hostinfo = $uri->hostinfo;
user
 my $user = $uri->user;
password
 my $password = $uri->password;
hostname
 my $hostname = $uri->hostname;
port
 my $port = $uri->port;
path
 my $path = $uri->path;
rpath

Returns the path minus path_info.

 my $path = $uri->rpath;
query
 my $query = $uri->query;
fragment
 my $fragment = $uri->fragment;

AUTHOR

Doug MacEachern

SEE ALSO

perl(1).