Controllers are where the actions in the Catalyst framework reside. Each action is represented by a function with an attribute to identify what kind of action it is. See the Catalyst::Dispatcher for more info about how Catalyst dispatches to actions....

This class represents a Catalyst Action. You can access the object for the currently dispatched action via $c->action. See the Catalyst::Dispatcher for more information on how actions are dispatched. Actions are defined in Catalyst::Controller subcla...

This module allows you to make requests to a Catalyst application either without a server, by simulating the environment of an HTTP request using HTTP::Request::AsCGI or remotely if you define the CATALYST_SERVER environment variable. This module als...

Starting in 5.90080 Catalyst will enable UTF8 encoding by default for text like body responses. In addition we've made a ton of fixes around encoding and utf8 scattered throughout the codebase. This document attempts to give an overview of the assump...

This is an overview of the user-visible changes to Catalyst between major Catalyst releases. VERSION 5.90105 This version primarily fixed a regression in the way we preserved $c->state which the previous version introduced. Now in the case when you f...

Catalyst is a modern framework for making web applications without the pain usually associated with this process. This document is a reference to the main Catalyst application. If you are a new user, we suggest you start with Catalyst::Manual::Tutori...

This is the universal base class for Catalyst components (Model/View/Controller). It provides you with a generic new() for component construction through Catalyst's component loader with config() support and a process() method placeholder. Note that ...

This used to be the base class for Catalyst Controllers. It remains here for compatibility reasons, but its use is highly deprecated. If your application produces a warning, then please update your application to inherit from Catalyst::Controller ins...

The "catalyst.pl" script bootstraps a Catalyst application, creating a directory structure populated with skeleton files. The application name must be a valid Perl module name. The name of the directory created is formed from the application name sup...

Create a new Catalyst Component. Existing component files are not overwritten. If any of the component files to be created already exist the file will be written with a '.new' suffix. This behavior can be suppressed with the "--force" option....

This is the Catalyst Response class, which provides methods for responding to the current client request. The appropriate Catalyst::Engine for your environment will turn the Catalyst::Response into a HTTP Response and return it to the client....

This is a WIP document intended to help people understand the logic that Catalyst uses to determine how to match in incoming request to an action (or action chain) in a controller. Request to Controller/Action Matching Catalyst maps requests to actio...

This is the Catalyst Request class, which provides an interface to data for the current client request. The request object is prepared by Catalyst::Engine, thus hiding the details of the particular engine implementation....

This is an action role that lets your Catalyst::Action match on the scheme type of the request. Typically this is "http" or "https" but other common schemes that Catalyst can handle include "ws" and "wss" (web socket and web socket secure). This also...

This is an action role that lets your Catalyst::Action match on standard HTTP methods, such as GET, POST, etc. Since most web browsers have limited support for rich HTTP Method vocabularies we use Plack::Middleware::MethodOverride which allows you to...

A common problem with stashing a closure, that closes over the Catalyst context (often called $ctx or $c), is the circular reference it creates, as the closure holds onto a reference to context, and the context holds a reference to the closure in its...