---
name: "APR::Const"
section: "3pm"
platform: "linux"
package: "libapache2-mod-perl2"
version: "2.0.13-2+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/APR::Const"
---

# APR::Const(3pm)

Perl Interface for APR Constants

## NAME

APR::Const - Perl Interface for APR Constants

## Synopsis

```
  # make the constants available but don't import them
  use APR::Const -compile => qw(constant names ...);

  # w/o the => syntax sugar
  use APR::Const ("-compile", qw(constant names ...));

  # compile and import the constants
  use APR::Const qw(constant names ...);
```

## Description

This package contains constants specific to `"APR"` features.

Refer to `"the Apache2::Const description` `section"` for more information.

## Constants

### ":common"

```
  use APR::Const -compile => qw(:common);
```

The `":common"` group is for XXX constants.

*"APR::Const::SUCCESS"*

- since: 2.0.00

  ### ":error"

```
  use APR::Const -compile => qw(:error);
```

The `":error"` group is for XXX constants.

*"APR::Const::EABOVEROOT"*

- since: 2.0.00

  *"APR::Const::EABSOLUTE"*

- since: 2.0.00

  *"APR::Const::EACCES"*

- since: 2.0.00

  Due to possible variants in conditions matching `"EACCES"`,  for checking error codes against this you most likely want to use the `"APR::Status::is_EACCES"` function instead.

*"APR::Const::EAGAIN"*

- since: 2.0.00

  The error *Resource temporarily unavailable*, may be returned by many different system calls, especially IO calls. Most likely you want to use the `"APR::Status::is_EAGAIN"` function instead.

*"APR::Const::EBADDATE"*

- since: 2.0.00

  *"APR::Const::EBADF"*

- since: 2.0.00

  *"APR::Const::EBADIP"*

- since: 2.0.00

  *"APR::Const::EBADMASK"*

- since: 2.0.00

  *"APR::Const::EBADPATH"*

- since: 2.0.00

  *"APR::Const::EBUSY"*

- since: 2.0.00

  *"APR::Const::ECONNABORTED"*

- since: 2.0.00

  Due to possible variants in conditions matching `"ECONNABORTED"`,  for checking error codes against this you most likely want to use the `"APR::Status::is_ECONNABORTED"` function instead.

*"APR::Const::ECONNREFUSED"*

- since: 2.0.00

  *"APR::Const::ECONNRESET"*

- since: 2.0.00

  Due to possible variants in conditions matching `"ECONNRESET"`, for checking error codes against this you most likely want to use the `"APR::Status::is_ECONNRESET"` function instead.

*"APR::Const::EDSOOPEN"*

- since: 2.0.00

  *"APR::Const::EEXIST"*

- since: 2.0.00

  *"APR::Const::EFTYPE"*

- since: 2.0.00

  *"APR::Const::EGENERAL"*

- since: 2.0.00

  *"APR::Const::EHOSTUNREACH"*

- since: 2.0.00

  *"APR::Const::EINCOMPLETE"*

- since: 2.0.00

  *"APR::Const::EINIT"*

- since: 2.0.00

  *"APR::Const::EINPROGRESS"*

- since: 2.0.00

  *"APR::Const::EINTR"*

- since: 2.0.00

  *"APR::Const::EINVAL"*

- since: 2.0.00

  *"APR::Const::EINVALSOCK"*

- since: 2.0.00

  *"APR::Const::EMFILE"*

- since: 2.0.00

  *"APR::Const::EMISMATCH"*

- since: 2.0.00

  *"APR::Const::ENAMETOOLONG"*

- since: 2.0.00

  *"APR::Const::END"*

- since: 2.0.00

  *"APR::Const::ENETUNREACH"*

- since: 2.0.00

  *"APR::Const::ENFILE"*

- since: 2.0.00

  *"APR::Const::ENODIR"*

- since: 2.0.00

  *"APR::Const::ENOENT"*

- since: 2.0.00

  Due to possible variants in conditions matching `"ENOENT"`,  for checking error codes against this you most likely want to use the `"APR::Status::is_ENOENT"` function instead.

*"APR::Const::ENOLOCK"*

- since: 2.0.00

  *"APR::Const::ENOMEM"*

- since: 2.0.00

  *"APR::Const::ENOPOLL"*

- since: 2.0.00

  *"APR::Const::ENOPOOL"*

- since: 2.0.00

  *"APR::Const::ENOPROC"*

- since: 2.0.00

  *"APR::Const::ENOSHMAVAIL"*

- since: 2.0.00

  *"APR::Const::ENOSOCKET"*

- since: 2.0.00

  *"APR::Const::ENOSPC"*

- since: 2.0.00

  *"APR::Const::ENOSTAT"*

- since: 2.0.00

  *"APR::Const::ENOTDIR"*

- since: 2.0.00

  *"APR::Const::ENOTEMPTY"*

- since: 2.0.00

  *"APR::Const::ENOTHDKEY"*

- since: 2.0.00

  *"APR::Const::ENOTHREAD"*

- since: 2.0.00

  *"APR::Const::ENOTIME"*

- since: 2.0.00

  *"APR::Const::ENOTIMPL"*

Something is not implemented

- since: 2.0.00

  *"APR::Const::ENOTSOCK"*

- since: 2.0.00

  *"APR::Const::EOF"*

- since: 2.0.00

  Due to possible variants in conditions matching `"EOF"`,  for checking error codes against this you most likely want to use the `"APR::Status::is_EOF"` function instead.

*"APR::Const::EPATHWILD"*

- since: 2.0.00

  *"APR::Const::EPIPE"*

- since: 2.0.00

  *"APR::Const::EPROC\_UNKNOWN"*

- since: 2.0.00

  *"APR::Const::ERELATIVE"*

- since: 2.0.00

  *"APR::Const::ESPIPE"*

- since: 2.0.00

  *"APR::Const::ESYMNOTFOUND"*

- since: 2.0.00

  *"APR::Const::ETIMEDOUT"*

- since: 2.0.00

  *"APR::Const::EXDEV"*

- since: 2.0.00

  ### ":fopen"

```
  use APR::Const -compile => qw(:fopen);
```

The `":fopen"` group is for XXX constants.

*"APR::Const::FOPEN\_BINARY"*

- since: 2.0.00

  *"APR::Const::FOPEN\_BUFFERED"*

- since: 2.0.00

  *"APR::Const::FOPEN\_CREATE"*

- since: 2.0.00

  *"APR::Const::FOPEN\_DELONCLOSE"*

- since: 2.0.00

  *"APR::Const::FOPEN\_EXCL"*

- since: 2.0.00

  *"APR::Const::FOPEN\_PEND"*

- since: 2.0.00

  *"APR::Const::FOPEN\_READ"*

- since: 2.0.00

  *"APR::Const::FOPEN\_TRUNCATE"*

- since: 2.0.00

  *"APR::Const::FOPEN\_WRITE"*

- since: 2.0.00

  ### ":filepath"

```
  use APR::Const -compile => qw(:filepath);
```

The `":filepath"` group is for XXX constants.

*"APR::Const::FILEPATH\_ENCODING\_LOCALE"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_ENCODING\_UNKNOWN"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_ENCODING\_UTF8"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_NATIVE"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_NOTABOVEROOT"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_NOTABSOLUTE"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_NOTRELATIVE"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_SECUREROOT"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_SECUREROOTTEST"*

- since: 2.0.00

  *"APR::Const::FILEPATH\_TRUENAME"*

- since: 2.0.00

  ### ":fprot"

```
  use APR::Const -compile => qw(:fprot);
```

The `":fprot"` group is used by `"$finfo->protection"`.

*"APR::Const::FPROT\_GEXECUTE"*

Execute by group

- since: 2.0.00

  *"APR::Const::FPROT\_GREAD"*

Read by group

- since: 2.0.00

  *"APR::Const::FPROT\_GSETID"*

Set group id

- since: 2.0.00

  *"APR::Const::FPROT\_GWRITE"*

Write by group

- since: 2.0.00

  *"APR::Const::FPROT\_OS\_DEFAULT"*

use OS's default permissions

- since: 2.0.00

  *"APR::Const::FPROT\_UEXECUTE"*

Execute by user

- since: 2.0.00

  *"APR::Const::FPROT\_UREAD"*

Read by user

- since: 2.0.00

  *"APR::Const::FPROT\_USETID"*

Set user id

- since: 2.0.00

  *"APR::Const::FPROT\_UWRITE"*

Write by user

- since: 2.0.00

  *"APR::Const::FPROT\_WEXECUTE"*

Execute by others

- since: 2.0.00

  *"APR::Const::FPROT\_WREAD"*

Read by others

- since: 2.0.00

  *"APR::Const::FPROT\_WSTICKY"*

Sticky bit

- since: 2.0.00

  *"APR::Const::FPROT\_WWRITE"*

Write by others

- since: 2.0.00

  ### ":filetype"

```
  use APR::Const -compile => qw(:filetype);
```

The `":filetype"` group is used by `"$finfo->filetype"`.

*"APR::Const::FILETYPE\_BLK"*

a file is a block device

- since: 2.0.00

  *"APR::Const::FILETYPE\_CHR"*

a file is a character device

- since: 2.0.00

  *"APR::Const::FILETYPE\_DIR"*

a file is a directory

- since: 2.0.00

  *"APR::Const::FILETYPE\_LNK"*

a file is a symbolic link

- since: 2.0.00

  *"APR::Const::FILETYPE\_NOFILE"*

the file type is undedetermined.

- since: 2.0.00

  *"APR::Const::FILETYPE\_PIPE"*

a file is a FIFO or a pipe.

- since: 2.0.00

  *"APR::Const::FILETYPE\_REG"*

a file is a regular file.

- since: 2.0.00

  *"APR::Const::FILETYPE\_SOCK"*

a file is a \[unix domain\] socket.

- since: 2.0.00

  *"APR::Const::FILETYPE\_UNKFILE"*

a file is of some other unknown type or the type cannot be determined.

- since: 2.0.00

  ### ":finfo"

```
  use APR::Const -compile => qw(:finfo);
```

The `":finfo"` group is used by `stat()` and `"$finfo->valid"`.

*"APR::Const::FINFO\_ATIME"*

Access Time

- since: 2.0.00

  *"APR::Const::FINFO\_CSIZE"*

Storage size consumed by the file

- since: 2.0.00

  *"APR::Const::FINFO\_CTIME"*

Creation Time

- since: 2.0.00

  *"APR::Const::FINFO\_DEV"*

Device

- since: 2.0.00

  *"APR::Const::FINFO\_DIRENT"*

an atomic unix **apr\_dir\_read()**

- since: 2.0.00

  *"APR::Const::FINFO\_GPROT"*

Group protection bits

- since: 2.0.00

  *"APR::Const::FINFO\_GROUP"*

Group id

- since: 2.0.00

  *"APR::Const::FINFO\_ICASE"*

whether device is case insensitive

- since: 2.0.00

  *"APR::Const::FINFO\_IDENT"*

device and inode

- since: 2.0.00

  *"APR::Const::FINFO\_INODE"*

Inode

- since: 2.0.00

  *"APR::Const::FINFO\_LINK"*

Stat the link not the file itself if it is a link

- since: 2.0.00

  *"APR::Const::FINFO\_MIN"*

type, mtime, ctime, atime, size

- since: 2.0.00

  *"APR::Const::FINFO\_MTIME"*

Modification Time

- since: 2.0.00

  *"APR::Const::FINFO\_NAME"*

name in proper case

- since: 2.0.00

  *"APR::Const::FINFO\_NLINK"*

Number of links

- since: 2.0.00

  *"APR::Const::FINFO\_NORM"*

All fields provided by an atomic unix **apr\_stat()**

- since: 2.0.00

  *"APR::Const::FINFO\_OWNER"*

user and group

- since: 2.0.00

  *"APR::Const::FINFO\_PROT"*

all protections

- since: 2.0.00

  *"APR::Const::FINFO\_SIZE"*

Size of the file

- since: 2.0.00

  *"APR::Const::FINFO\_TYPE"*

Type

- since: 2.0.00

  *"APR::Const::FINFO\_UPROT"*

User protection bits

- since: 2.0.00

  *"APR::Const::FINFO\_USER"*

User id

- since: 2.0.00

  *"APR::Const::FINFO\_WPROT"*

World protection bits

- since: 2.0.00

  ### ":flock"

```
  use APR::Const -compile => qw(:flock);
```

The `":flock"` group is for XXX constants.

*"APR::Const::FLOCK\_EXCLUSIVE"*

- since: 2.0.00

  *"APR::Const::FLOCK\_NONBLOCK"*

- since: 2.0.00

  *"APR::Const::FLOCK\_SHARED"*

- since: 2.0.00

  *"APR::Const::FLOCK\_TYPEMASK"*

- since: 2.0.00

  ### ":hook"

```
  use APR::Const -compile => qw(:hook);
```

The `":hook"` group is for XXX constants.

*"APR::Const::HOOK\_FIRST"*

- since: 2.0.00

  *"APR::Const::HOOK\_LAST"*

- since: 2.0.00

  *"APR::Const::HOOK\_MIDDLE"*

- since: 2.0.00

  *"APR::Const::HOOK\_REALLY\_FIRST"*

- since: 2.0.00

  *"APR::Const::HOOK\_REALLY\_LAST"*

- since: 2.0.00

  ### ":limit"

```
  use APR::Const -compile => qw(:limit);
```

The `":limit"` group is for XXX constants.

*"APR::Const::LIMIT\_CPU"*

- since: 2.0.00

  *"APR::Const::LIMIT\_MEM"*

- since: 2.0.00

  *"APR::Const::LIMIT\_NOFILE"*

- since: 2.0.00

  *"APR::Const::LIMIT\_NPROC"*

- since: 2.0.00

  ### ":lockmech"

```
  use APR::Const -compile => qw(:lockmech);
```

The `":lockmech"` group is for XXX constants.

*"APR::Const::LOCK\_DEFAULT"*

- since: 2.0.00

  *"APR::Const::LOCK\_FCNTL"*

- since: 2.0.00

  *"APR::Const::LOCK\_FLOCK"*

- since: 2.0.00

  *"APR::Const::LOCK\_POSIXSEM"*

- since: 2.0.00

  *"APR::Const::LOCK\_PROC\_PTHREAD"*

- since: 2.0.00

  *"APR::Const::LOCK\_SYSVSEM"*

- since: 2.0.00

  ### ":poll"

```
  use APR::Const -compile => qw(:poll);
```

The `":poll"` group is used by `"poll"`.

*"APR::Const::POLLERR"*

- since: 2.0.00

  Pending error

*"APR::Const::POLLHUP"*

- since: 2.0.00

  Hangup occurred

*"APR::Const::POLLIN"*

- since: 2.0.00

  Can read without blocking

*"APR::Const::POLLNVAL"*

- since: 2.0.00

  Descriptor invalid

*"APR::Const::POLLOUT"*

- since: 2.0.00

  Can write without blocking

*"APR::Const::POLLPRI"*

- since: 2.0.00

  Priority data available

### ":read\_type"

```
  use APR::Const -compile => qw(:read_type);
```

The `":read_type"` group is for IO constants.

*"APR::Const::BLOCK\_READ"*

- since: 2.0.00

  the read function blocks

*"APR::Const::NONBLOCK\_READ"*

- since: 2.0.00

  the read function does not block

### ":shutdown\_how"

```
  use APR::Const -compile => qw(:shutdown_how);
```

The `":shutdown_how"` group is for XXX constants.

*"APR::Const::SHUTDOWN\_READ"*

- since: 2.0.00

  *"APR::Const::SHUTDOWN\_READWRITE"*

- since: 2.0.00

  *"APR::Const::SHUTDOWN\_WRITE"*

- since: 2.0.00

  ### ":socket"

```
  use APR::Const -compile => qw(:socket);
```

The `":socket"` group is for the `"APR::Socket"` object constants, in methods `"opt_get"` and `"opt_set"`.

The following section discusses in detail each of the `":socket"` constants.

*"APR::Const::SO\_DEBUG"*

Possible values:

XXX

- since: 2.0.00

  Turns on debugging information

*"APR::Const::SO\_DISCONNECTED"*

Queries the disconnected state of the socket.  (Currently only used on Windows)

Possible values:

XXX

- since: 2.0.00

  *"APR::Const::SO\_KEEPALIVE"*

Keeps connections active

Possible values:

XXX

- since: 2.0.00

  *"APR::Const::SO\_LINGER"*

Lingers on close if data is present

- since: 2.0.00

  *"APR::Const::SO\_NONBLOCK"*

Turns blocking IO mode on/off for socket.

Possible values:

```
  1 nonblocking
  0 blocking
```

For example, to set a socket to a blocking IO mode:

```
  use APR::Socket ();
  use APR::Const    -compile => qw(SO_NONBLOCK);
  ...
  if ($socket->opt_get(APR::Const::SO_NONBLOCK)) {
      $socket->opt_set(APR::Const::SO_NONBLOCK => 0);
  }
```

You don't have to query for this option, before setting it. It was done for the demonstration purpose.

- since: 2.0.00

  *"APR::Const::SO\_RCVBUF"*

Controls the `"ReceiveBufferSize"` setting

Possible values:

XXX

- since: 2.0.00

  *"APR::Const::SO\_REUSEADDR"*

The rules used in validating addresses supplied to bind should allow reuse of local addresses.

Possible values:

XXX

- since: 2.0.00

  *"APR::Const::SO\_SNDBUF"*

Controls the `"SendBufferSize"` setting

Possible values:

XXX

- since: 2.0.00

  ### ":status"

```
  use APR::Const -compile => qw(:status);
```

The `":status"` group is for the API that return status code, or set the error variable XXXXXX.

The following section discusses in detail each of the available `":status"` constants.

*"APR::Const::TIMEUP"*

The operation did not finish before the timeout.

- since: 2.0.00

  Due to possible variants in conditions matching `"TIMEUP"`,  for checking error codes against this you most likely want to use the `"APR::Status::is_TIMEUP"` function instead.

### ":table"

```
  use APR::Const -compile => qw(:table);
```

The `":table"` group is for `overlap()` and `compress()` constants. See `"APR::Table"` for details.

*"APR::Const::OVERLAP\_TABLES\_MERGE"*

- since: 2.0.00

  See `"APR::Table::compress"` and `"APR::Table::overlap"`.

*"APR::Const::OVERLAP\_TABLES\_SET"*

- since: 2.0.00

  See `"APR::Table::compress"` and `"APR::Table::overlap"`.

### ":uri"

```
  use APR::Const -compile => qw(:uri);
```

The `":uri"` group of constants is for manipulating URIs.

*"APR::Const::URI\_ACAP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_FTP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_GOPHER\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_HTTPS\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_HTTP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_IMAP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_LDAP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_NFS\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_NNTP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_POP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_PROSPERO\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_RTSP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_SIP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_SNEWS\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_SSH\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_TELNET\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_TIP\_DEFAULT\_PORT"*

- since: 2.0.00

  *"APR::Const::URI\_UNP\_OMITPASSWORD"*

- since: 2.0.00

  See `"APR::URI::unparse"`.

*"APR::Const::URI\_UNP\_OMITPATHINFO"*

- since: 2.0.00

  See `"APR::URI::unparse"`.

*"APR::Const::URI\_UNP\_OMITQUERY"*

- since: 2.0.00

  See `"APR::URI::unparse"`.

*"APR::Const::URI\_UNP\_OMITSITEPART"*

- since: 2.0.00

  See `"APR::URI::unparse"`.

*"APR::Const::URI\_UNP\_OMITUSER"*

- since: 2.0.00

  See `"APR::URI::unparse"`.

*"APR::Const::URI\_UNP\_OMITUSERINFO"*

- since: 2.0.00

  *"APR::Const::URI\_UNP\_REVEALPASSWORD"*

- since: 2.0.00

  See `"APR::URI::unparse"`.

*"APR::Const::URI\_WAIS\_DEFAULT\_PORT"*

- since: 2.0.00

  ### Other Constants

*"APR::PerlIO::PERLIO\_LAYERS\_ARE\_ENABLED"*

- since: 2.0.00

  See `"APR::PerlIO::Constants"`)

## See Also

mod\_perl 2.0 documentation.

## Copyright

mod\_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0.

## Authors

The mod\_perl development team and numerous contributors.
