man Apache::Constants () - Constants defined in apache header files
NAME
Apache::Constants - Constants defined in apache header files
SYNOPSIS
    use Apache::Constants;
    use Apache::Constants ':common';
    use Apache::Constants ':response';
DESCRIPTION
Server constants used by apache modules are defined in httpd.h and other header files, this module gives Perl access to those constants.
EXPORT TAGS
- common
- 
This tag imports the most commonly used constants.
OK DECLINED DONE NOT_FOUND FORBIDDEN AUTH_REQUIRED SERVER_ERROR 
- response
- 
This tag imports the common response codes, plus these
response codes: 
DOCUMENT_FOLLOWS MOVED REDIRECT USE_LOCAL_COPY BAD_REQUEST BAD_GATEWAY RESPONSE_CODES NOT_IMPLEMENTED CONTINUE NOT_AUTHORITATIVE CONTINUE and NOT_AUTHORITATIVE are aliases for DECLINED.
- methods
- 
This are the method numbers, commonly used with
the Apache method_number method.
METHODS M_CONNECT M_DELETE M_GET M_INVALID M_OPTIONS M_POST M_PUT M_TRACE M_PATCH M_PROPFIND M_PROPPATCH M_MKCOL M_COPY M_MOVE M_LOCK M_UNLOCK 
- options
- 
These constants are most commonly used with 
the Apache allow_options method:
OPT_NONE OPT_INDEXES OPT_INCLUDES OPT_SYM_LINKS OPT_EXECCGI OPT_UNSET OPT_INCNOEXEC OPT_SYM_OWNER OPT_MULTI OPT_ALL 
- satisfy
- 
These constants are most commonly used with 
the Apache satisfies method:
SATISFY_ALL SATISFY_ANY SATISFY_NOSPEC 
- remotehost
- 
These constants are most commonly used with 
the Apache get_remote_host method:
REMOTE_HOST REMOTE_NAME REMOTE_NOLOOKUP REMOTE_DOUBLE_REV 
- http
- 
This is the full set of HTTP response codes:
(NOTE: not all implemented here)
HTTP_OK HTTP_MOVED_TEMPORARILY HTTP_MOVED_PERMANENTLY HTTP_METHOD_NOT_ALLOWED HTTP_NOT_MODIFIED HTTP_UNAUTHORIZED HTTP_FORBIDDEN HTTP_NOT_FOUND HTTP_BAD_REQUEST HTTP_INTERNAL_SERVER_ERROR HTTP_NOT_ACCEPTABLE HTTP_NO_CONTENT HTTP_PRECONDITION_FAILED HTTP_SERVICE_UNAVAILABLE HTTP_VARIANT_ALSO_VARIES 
- server
- 
These are constants related to server version:
MODULE_MAGIC_NUMBER SERVER_VERSION SERVER_BUILT 
- config
- 
These are constants related to configuration directives:
DECLINE_CMD 
- types
- 
These are constants related to internal request types:
DIR_MAGIC_TYPE 
- override
- 
These constants are used to control and test the context of configuration
directives.
OR_NONE OR_LIMIT OR_OPTIONS OR_FILEINFO OR_AUTHCFG OR_INDEXES OR_UNSET OR_ALL ACCESS_CONF RSRC_CONF 
- args_how
- 
RAW_ARGS TAKE1 TAKE2 TAKE12 TAKE3 TAKE23 TAKE123 ITERATE ITERATE2 FLAG NO_ARGS 
Misuses
You should be aware of the issues relating to using constant subroutines in Perl. For example this:
$r->custom_response(FORBIDDEN => "File size exceeds quota.");
will not set a custom response for CWFORBIDDEN, but for the string CW"FORBIDDEN", which clearly isn't what is expected. You'll get an error like this:
[Tue Apr 23 19:46:14 2002] null: Argument "FORBIDDEN" isn't numeric in subroutine entry at ...
Therefore, the best solution is not to use the hash notation for things that don't require it:
$r->custom_response(FORBIDDEN, "File size exceeds quota.");
Another important note is that instead of using HTTP codes, you should use designed for that purpose constants. Therefore, this is wrong:
  sub handler { return 200; }
The correct use is:
  use Apache::Constants qw(OK);
  sub handler { return OK; }
Also remember that CWOK != HTTP_OK.
AUTHORS
Doug MacEachern, Gisle Aas and h2xs