src::mod_perl::docs::api::Apache2::Const(3)

NAME
Apache2::Const - Perl Interface for Apache Constants

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

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

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

Description
This package contains constants specific to "Apache" features.

mod_perl 2.0 comes with several hundreds of constants, which you don't want to make available to your Perl code by default, due to CPU and memory overhead. Therefore when you want to use a certain constant you need to explicitly ask to make it available.

For example, the code:

  use Apache2::Const -compile => qw(FORBIDDEN OK);

makes the constants "Apache2::Const::FORBIDDEN" and "Apache2::Const::OK" available to your code, but they aren't imported. In which case you need to use a fully qualified constants, as in:

  return Apache2::Const::OK;

If you drop the argument "-compile" and write:

  use Apache2::Const qw(FORBIDDEN OK);

Then both constants are imported into your code's namespace and can be used standalone like so:

  return OK;

Both, due to the extra memory requirement, when importing symbols, and since there are constants in other namespaces (e.g., "APR::" and "ModPerl::", and non-mod_perl modules) which may contain the same names, it's not recommended to import constants. I.e. you want to use the "-compile" construct.

Finaly, in Perl "=>" is almost the same as the comma operator. It can be used as syntax sugar making it more clear when there is a key-value relation between two arguments, and also it automatically parses its lefthand argument (the key) as a string, so you don't need to quote it.

If you don't want to use that syntax, instead of writing:

 use Apache2::Const -compile => qw(FORBIDDEN OK);

you could write:

 use Apache2::Const "-compile", qw(FORBIDDEN OK);

and for parentheses-lovers:

 use Apache2::Const ("-compile", qw(FORBIDDEN OK));

Constants

  ":cmd_how"
  use Apache2::Const -compile => qw(:cmd_how);

The ":cmd_how" constants group is used in "Apache2::Module::add()" and "$cmds->args_how".

"Apache2::Const::FLAG"

One of On or Off (full description).

since: 2.0.00

"Apache2::Const::ITERATE"

One argument, occuring multiple times (full description).

since: 2.0.00

"Apache2::Const::ITERATE2"

Two arguments, the second occurs multiple times (full description).

since: 2.0.00

"Apache2::Const::NO_ARGS"

No arguments at all (full description).

since: 2.0.00

"Apache2::Const::RAW_ARGS"

The command will parse the command line itself (full description).

since: 2.0.00

"Apache2::Const::TAKE1"

One argument only (full description).

since: 2.0.00

"Apache2::Const::TAKE12"

One or two arguments (full description).

since: 2.0.00

"Apache2::Const::TAKE123"

One, two or three arguments (full description).

since: 2.0.00

"Apache2::Const::TAKE13"

One or three arguments (full description).

since: 2.0.00

"Apache2::Const::TAKE2"

Two arguments (full description).

since: 2.0.00

"Apache2::Const::TAKE23"

Two or three arguments (full description).

since: 2.0.00

"Apache2::Const::TAKE3"

Three arguments (full description).

since: 2.0.00

  ":common"
  use Apache2::Const -compile => qw(:common);

The ":common" group is for XXX constants.

"Apache2::Const::AUTH_REQUIRED"

since: 2.0.00

"Apache2::Const::DECLINED"

since: 2.0.00

"Apache2::Const::DONE"

since: 2.0.00

"Apache2::Const::FORBIDDEN"

since: 2.0.00

"Apache2::Const::NOT_FOUND"

since: 2.0.00

"Apache2::Const::OK"

since: 2.0.00

"Apache2::Const::REDIRECT"

since: 2.0.00

"Apache2::Const::SERVER_ERROR"

since: 2.0.00

  ":config"
  use Apache2::Const -compile => qw(:config);

The ":config" group is for XXX constants.

"Apache2::Const::DECLINE_CMD"

since: 2.0.00

  ":conn_keepalive"
  use Apache2::Const -compile => qw(:conn_keepalive);

The ":conn_keepalive" constants group is used by the ("$c->keepalive") method.

"Apache2::Const::CONN_CLOSE"

The connection will be closed at the end of the current HTTP request.

since: 2.0.00

"Apache2::Const::CONN_KEEPALIVE"

The connection will be kept alive at the end of the current HTTP request.

since: 2.0.00

"Apache2::Const::CONN_UNKNOWN"

The connection is at an unknown state, e.g., initialized but not open yet.

since: 2.0.00

  ":context"
  use Apache2::Const -compile => qw(:context);

The ":context" group is used by the "$parms->check_cmd_context" method.

"Apache2::Const::NOT_IN_VIRTUALHOST"

The command is not in a <VirtualHost> block.

since: 2.0.00

"Apache2::Const::NOT_IN_LIMIT"

The command is not in a <Limit> block.

since: 2.0.00

"Apache2::Const::NOT_IN_DIRECTORY"

The command is not in a <Directory> block.

since: 2.0.00

"Apache2::Const::NOT_IN_LOCATION"

The command is not in a <Location>/<LocationMatch> block.

since: 2.0.00

"Apache2::Const::NOT_IN_FILES"

The command is not in a <Files>/<FilesMatch> block.

since: 2.0.00

"Apache2::Const::NOT_IN_DIR_LOC_FILE"

The command is not in a <Files>/<FilesMatch>, <Location>/<LocationMatch> or <Directory> block.

since: 2.0.00

"Apache2::Const::GLOBAL_ONLY"

The directive appears outside of any container directives.

since: 2.0.00

  ":filter_type"
  use Apache2::Const -compile => qw(:filter_type);

The ":filter_type" group is for XXX constants.

"Apache2::Const::FTYPE_CONNECTION"

since: 2.0.00

"Apache2::Const::FTYPE_CONTENT_SET"

since: 2.0.00

"Apache2::Const::FTYPE_NETWORK"

since: 2.0.00

"Apache2::Const::FTYPE_PROTOCOL"

since: 2.0.00

"Apache2::Const::FTYPE_RESOURCE"

since: 2.0.00

"Apache2::Const::FTYPE_TRANSCODE"

since: 2.0.00

  ":http"
  use Apache2::Const -compile => qw(:http);

The ":http" group is for XXX constants.

"Apache2::Const::HTTP_ACCEPTED"

since: 2.0.00

"Apache2::Const::HTTP_BAD_GATEWAY"

since: 2.0.00

"Apache2::Const::HTTP_BAD_REQUEST"

since: 2.0.00

"Apache2::Const::HTTP_CONFLICT"

since: 2.0.00

"Apache2::Const::HTTP_CONTINUE"

since: 2.0.00

"Apache2::Const::HTTP_CREATED"

since: 2.0.00

"Apache2::Const::HTTP_EXPECTATION_FAILED"

since: 2.0.00

"Apache2::Const::HTTP_FAILED_DEPENDENCY"

since: 2.0.00

"Apache2::Const::HTTP_FORBIDDEN"

since: 2.0.00

"Apache2::Const::HTTP_GATEWAY_TIME_OUT"

since: 2.0.00

"Apache2::Const::HTTP_GONE"

since: 2.0.00

"Apache2::Const::HTTP_INSUFFICIENT_STORAGE"

since: 2.0.00

"Apache2::Const::HTTP_INTERNAL_SERVER_ERROR"

since: 2.0.00

"Apache2::Const::HTTP_LENGTH_REQUIRED"

since: 2.0.00

"Apache2::Const::HTTP_LOCKED"

since: 2.0.00

"Apache2::Const::HTTP_METHOD_NOT_ALLOWED"

since: 2.0.00

"Apache2::Const::HTTP_MOVED_PERMANENTLY"

since: 2.0.00

"Apache2::Const::HTTP_MOVED_TEMPORARILY"

since: 2.0.00

"Apache2::Const::HTTP_MULTIPLE_CHOICES"

since: 2.0.00

"Apache2::Const::HTTP_MULTI_STATUS"

since: 2.0.00

"Apache2::Const::HTTP_NON_AUTHORITATIVE"

since: 2.0.00

"Apache2::Const::HTTP_NOT_ACCEPTABLE"

since: 2.0.00

"Apache2::Const::HTTP_NOT_EXTENDED"

since: 2.0.00

"Apache2::Const::HTTP_NOT_FOUND"

since: 2.0.00

"Apache2::Const::HTTP_NOT_IMPLEMENTED"

since: 2.0.00

"Apache2::Const::HTTP_NOT_MODIFIED"

since: 2.0.00

"Apache2::Const::HTTP_NO_CONTENT"

since: 2.0.00

"Apache2::Const::HTTP_OK"

since: 2.0.00

"Apache2::Const::HTTP_PARTIAL_CONTENT"

since: 2.0.00

"Apache2::Const::HTTP_PAYMENT_REQUIRED"

since: 2.0.00

"Apache2::Const::HTTP_PRECONDITION_FAILED"

since: 2.0.00

"Apache2::Const::HTTP_PROCESSING"

since: 2.0.00

"Apache2::Const::HTTP_PROXY_AUTHENTICATION_REQUIRED"

since: 2.0.00

"Apache2::Const::HTTP_RANGE_NOT_SATISFIABLE"

since: 2.0.00

"Apache2::Const::HTTP_REQUEST_ENTITY_TOO_LARGE"

since: 2.0.00

"Apache2::Const::HTTP_REQUEST_TIME_OUT"

since: 2.0.00

"Apache2::Const::HTTP_REQUEST_URI_TOO_LARGE"

since: 2.0.00

"Apache2::Const::HTTP_RESET_CONTENT"

since: 2.0.00

"Apache2::Const::HTTP_SEE_OTHER"

since: 2.0.00

"Apache2::Const::HTTP_SERVICE_UNAVAILABLE"

since: 2.0.00

"Apache2::Const::HTTP_SWITCHING_PROTOCOLS"

since: 2.0.00

"Apache2::Const::HTTP_TEMPORARY_REDIRECT"

since: 2.0.00

"Apache2::Const::HTTP_UNAUTHORIZED"

since: 2.0.00

"Apache2::Const::HTTP_UNPROCESSABLE_ENTITY"

since: 2.0.00

"Apache2::Const::HTTP_UNSUPPORTED_MEDIA_TYPE"

since: 2.0.00

"Apache2::Const::HTTP_UPGRADE_REQUIRED"

since: 2.0.00

"Apache2::Const::HTTP_USE_PROXY"

since: 2.0.00

"Apache2::Const::HTTP_VARIANT_ALSO_VARIES"

since: 2.0.00

  ":input_mode"
  use Apache2::Const -compile => qw(:input_mode);

The ":input_mode" group is used by "get_brigade".

"Apache2::Const::MODE_EATCRLF"

since: 2.0.00

See "Apache2::Filter::get_brigade()".

"Apache2::Const::MODE_EXHAUSTIVE"

since: 2.0.00

See "Apache2::Filter::get_brigade()".

"Apache2::Const::MODE_GETLINE"

since: 2.0.00

See "Apache2::Filter::get_brigade()".

"Apache2::Const::MODE_INIT"

since: 2.0.00

See "Apache2::Filter::get_brigade()".

"Apache2::Const::MODE_READBYTES"

since: 2.0.00

See "Apache2::Filter::get_brigade()".

"Apache2::Const::MODE_SPECULATIVE"

since: 2.0.00

See "Apache2::Filter::get_brigade()".

  ":log"
  use Apache2::Const -compile => qw(:log);

The ":log" group is for constants used by "Apache2::Log".

"Apache2::Const::LOG_ALERT"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_CRIT"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_DEBUG"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_EMERG"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_ERR"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_INFO"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_LEVELMASK"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_NOTICE"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_STARTUP"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_TOCLIENT"

since: 2.0.00

See "Apache2::Log".

"Apache2::Const::LOG_WARNING"

since: 2.0.00

See "Apache2::Log".

  ":methods"
  use Apache2::Const -compile => qw(:methods);

The ":methods" constants group is used in conjunction with "$r->method_number".

"Apache2::Const::METHODS"

since: 2.0.00

"Apache2::Const::M_BASELINE_CONTROL"

since: 2.0.00

"Apache2::Const::M_CHECKIN"

since: 2.0.00

"Apache2::Const::M_CHECKOUT"

since: 2.0.00

"Apache2::Const::M_CONNECT"

since: 2.0.00

"Apache2::Const::M_COPY"

since: 2.0.00

"Apache2::Const::M_DELETE"

since: 2.0.00

"Apache2::Const::M_GET"

since: 2.0.00

corresponds to the HTTP "GET" method

"Apache2::Const::M_INVALID"

since: 2.0.00

"Apache2::Const::M_LABEL"

since: 2.0.00

"Apache2::Const::M_LOCK"

since: 2.0.00

"Apache2::Const::M_MERGE"

since: 2.0.00

"Apache2::Const::M_MKACTIVITY"

since: 2.0.00

"Apache2::Const::M_MKCOL"

since: 2.0.00

"Apache2::Const::M_MKWORKSPACE"

since: 2.0.00

"Apache2::Const::M_MOVE"

since: 2.0.00

"Apache2::Const::M_OPTIONS"

since: 2.0.00

"Apache2::Const::M_PATCH"

since: 2.0.00

"Apache2::Const::M_POST"

since: 2.0.00

corresponds to the HTTP "POST" method

"Apache2::Const::M_PROPFIND"

since: 2.0.00

"Apache2::Const::M_PROPPATCH"

since: 2.0.00

"Apache2::Const::M_PUT"

since: 2.0.00

corresponds to the HTTP "PUT" method

"Apache2::Const::M_REPORT"

since: 2.0.00

"Apache2::Const::M_TRACE"

since: 2.0.00

"Apache2::Const::M_UNCHECKOUT"

since: 2.0.00

"Apache2::Const::M_UNLOCK"

since: 2.0.00

"Apache2::Const::M_UPDATE"

since: 2.0.00

"Apache2::Const::M_VERSION_CONTROL"

since: 2.0.00

  ":mpmq"
  use Apache2::Const -compile => qw(:mpmq);

The ":mpmq" group is for querying MPM properties.

"Apache2::Const::MPMQ_NOT_SUPPORTED"

since: 2.0.00

"Apache2::Const::MPMQ_STATIC"

since: 2.0.00

"Apache2::Const::MPMQ_DYNAMIC"

since: 2.0.00

"Apache2::Const::MPMQ_MAX_DAEMON_USED"

since: 2.0.00

"Apache2::Const::MPMQ_IS_THREADED"

since: 2.0.00

"Apache2::Const::MPMQ_IS_FORKED"

since: 2.0.00

"Apache2::Const::MPMQ_HARD_LIMIT_DAEMONS"

since: 2.0.00

"Apache2::Const::MPMQ_HARD_LIMIT_THREADS"

since: 2.0.00

"Apache2::Const::MPMQ_MAX_THREADS"

since: 2.0.00

"Apache2::Const::MPMQ_MIN_SPARE_DAEMONS"

since: 2.0.00

"Apache2::Const::MPMQ_MIN_SPARE_THREADS"

since: 2.0.00

"Apache2::Const::MPMQ_MAX_SPARE_DAEMONS"

since: 2.0.00

"Apache2::Const::MPMQ_MAX_SPARE_THREADS"

since: 2.0.00

"Apache2::Const::MPMQ_MAX_REQUESTS_DAEMON"

since: 2.0.00

"Apache2::Const::MPMQ_MAX_DAEMONS"

since: 2.0.00

  ":options"
  use Apache2::Const -compile => qw(:options);

The ":options" group contains constants corresponding to the "Options" configuration directive. For examples see: "$r->allow_options".

"Apache2::Const::OPT_ALL"

since: 2.0.00

"Apache2::Const::OPT_EXECCGI"

since: 2.0.00

"Apache2::Const::OPT_INCLUDES"

since: 2.0.00

"Apache2::Const::OPT_INCNOEXEC"

since: 2.0.00

"Apache2::Const::OPT_INDEXES"

since: 2.0.00

"Apache2::Const::OPT_MULTI"

since: 2.0.00

"Apache2::Const::OPT_NONE"

since: 2.0.00

"Apache2::Const::OPT_SYM_LINKS"

since: 2.0.00

"Apache2::Const::OPT_SYM_OWNER"

since: 2.0.00

"Apache2::Const::OPT_UNSET"

since: 2.0.00

  ":override"
  use Apache2::Const -compile => qw(:override);

The ":override" group contains constants corresponding to the "AllowOverride" configuration directive. For examples see: "$r->allow_options".

"Apache2::Const::ACCESS_CONF"

*.conf inside "<Directory>" or "<Location>"

since: 2.0.00

"Apache2::Const::EXEC_ON_READ"

Force directive to execute a command which would modify the configuration (like including another file, or "IFModule")

since: 2.0.00

"Apache2::Const::OR_ALL"

"Apache2::Const::OR_LIMIT" | "Apache2::Const::OR_OPTIONS" | "Apache2::Const::OR_FILEINFO" | "Apache2::Const::OR_AUTHCFG" | "Apache2::Const::OR_INDEXES"

since: 2.0.00

"Apache2::Const::OR_AUTHCFG"

*.conf inside "<Directory>" or "<Location>" and .htaccess when "AllowOverride AuthConfig"

since: 2.0.00

"Apache2::Const::OR_FILEINFO"

*.conf anywhere and .htaccess when "AllowOverride FileInfo"

since: 2.0.00

"Apache2::Const::OR_INDEXES"

*.conf anywhere and .htaccess when "AllowOverride Indexes"

since: 2.0.00

"Apache2::Const::OR_LIMIT"

*.conf inside "<Directory>" or "<Location>" and .htaccess when "AllowOverride Limit"

since: 2.0.00

"Apache2::Const::OR_NONE"

*.conf is not available anywhere in this override

since: 2.0.00

"Apache2::Const::OR_OPTIONS"

*.conf anywhere and .htaccess when "AllowOverride Options"

since: 2.0.00

"Apache2::Const::OR_UNSET"

Unset a directive (in "Allow")

since: 2.0.00

"Apache2::Const::RSRC_CONF"

*.conf outside "<Directory>" or "<Location>"

since: 2.0.00

  ":platform"
  use Apache2::Const -compile => qw(:platform);

The ":platform" group is for constants that may differ from OS to OS.

"Apache2::Const::CRLF"

since: 2.0.00

"Apache2::Const::CR"

since: 2.0.00

"Apache2::Const::LF"

since: 2.0.00

  ":remotehost"
  use Apache2::Const -compile => qw(:remotehost);

The ":remotehost" constants group is is used by the "$c->get_remote_host" method.

"Apache2::Const::REMOTE_DOUBLE_REV"

since: 2.0.00

"Apache2::Const::REMOTE_HOST"

since: 2.0.00

"Apache2::Const::REMOTE_NAME"

since: 2.0.00

"Apache2::Const::REMOTE_NOLOOKUP"

since: 2.0.00

  ":satisfy"
  use Apache2::Const -compile => qw(:satisfy);

The ":satisfy" constants group is used in conjunction with "$r->satisfies".

"Apache2::Const::SATISFY_ALL"

since: 2.0.00

All of the requirements must be met.

"Apache2::Const::SATISFY_ANY"

since: 2.0.00

any of the requirements must be met.

"Apache2::Const::SATISFY_NOSPEC"

since: 2.0.00

There are no applicable satisfy lines

  ":types"
  use Apache2::Const -compile => qw(:types);

The ":types" group is for XXX constants.

"Apache2::Const::DIR_MAGIC_TYPE"

since: 2.0.00

  ":proxy"
  use Apache2::Const -compile => qw(:proxy);

The ":proxy" constants group is used in conjunction with "$r->proxyreq".

"Apache2::Const::PROXYREQ_NONE"

since: 2.0.2

"Apache2::Const::PROXYREQ_PROXY"

since: 2.0.2

"Apache2::Const::PROXYREQ_REVERSE"

since: 2.0.2

"Apache2::Const::PROXYREQ_RESPONSE"

since: 2.0.5

See Also
mod_perl 2.0 documentation.

HTTP Status Codes.

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.