---
name: "Apache::URI"
section: "3pm"
platform: "linux"
package: "libapache-mod-perl"
version: "1.29.0.4-4.1+etch1"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/Apache::URI"
---

# Apache::URI(3pm)

URI component parsing and unparsing

## 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)](/perl/1.md).
