Apache2::Const(3) 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.