Catalyst::Engine - The Catalyst Engine


See Catalyst.




Finalize body. Prints the response output.


Create CGI::Simple::Cookie objects from $c->res->cookies, and set them as response headers.


Output an appropriate error message. Called if there's an error in $c after the dispatch has finished. Will output debug messages if Catalyst is in debug mode, or a `please come back later` message otherwise.


Abstract method, allows engines to write headers to response



Clean up after uploads, deleting temp files.


sets up the Catalyst::Request object body using HTTP::Body


Add a chunk to the request body.


Sets up parameters from body.


Abstract method implemented in engines.


Parse cookies from header. Sets a CGI::Simple::Cookie object.



sets up parameters from query and post parameters.


abstract method, implemented by engines.



process the query string and extract query parameters.


prepare to read from the engine.


Populate the context object from the request object.



Abstract method. Implemented by the engines.

$self->read($c, [$maxlength])

$self->read_chunk($c, $buffer, $length)

Each engine implements read_chunk as its preferred way of reading a chunk of data.


The length of input data to be read. This is obtained from the Content-Length header.


The amount of input data that has already been read.


Start the engine. Implemented by the various engine classes.

$self->write($c, $buffer)

Writes the buffer to the client.


Unescapes a given URI using the most efficient method available. Engines such as Apache may implement this using Apache's C-based modules, for example.


<obsolete>, see finalize_body


Hash containing enviroment variables including many special variables inserted by WWW server - like SERVER_*, REMOTE_*, HTTP_* ...

Before accesing enviroment variables consider whether the same information is not directly available via Catalyst objects $c->request, $c->engine ...

BEWARE: If you really need to access some enviroment variable from your Catalyst application you should use $c->engine->env->{VARNAME} instead of $ENV{VARNAME}, as in some enviroments the %ENV hash does not contain what you would expect.


Catalyst Contributors, see


This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.