The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Catalyst::ScriptRunner - The Catalyst Framework script runner


    # Will run MyApp::Script::Server if it exists, otherwise
    # will run Catalyst::Script::Server.
    Catalyst::ScriptRunner->run('MyApp', 'Server');


This class is responsible for loading and running scripts, either in the application specific namespace (e.g. MyApp::Script::Server), or the Catalyst namespace (e.g. Catalyst::Script::Server).

If your application contains a custom script, then it will be used in preference to the generic script, and is expected to sub-class the standard script.


Catalyst will automatically load and apply roles to the scripts in your application.

MyApp::TraitFor::Script will be loaded if present, and will be applied to ALL scripts.

MyApp::TraitFor::Script::XXXX will be loaded (if present) and for script individually.


run ($application_class, $scriptclass)

Called with two parameters, the application class (e.g. MyApp) and the script class, (i.e. one of Server/FastCGI/CGI/Create/Test)

find_script_class ($appname, $script_name)

Finds and loads the class for the script, trying the application specific script first, and falling back to the generic script. Returns the script which was loaded.

find_script_traits ($appname, @try)

Finds and loads a set of traits. Returns the list of traits which were loaded.


Catalyst Contributors, see


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