=head1 NAME Catalyst::Manual::Tutorial - Getting started with Catalyst =head1 DESCRIPTION This document aims to get you up and running with Catalyst. NOTE: THIS DOCUMENT IS STILL VERY MUCH AT AN ALPHA STAGE. Please send comments, corrections and suggestions for improvements to A.Ford@ford-mason.co.uk =head2 Installation The first step is to install Catalyst, and the simplest way to do this is to install the Catalyst bundle from CPAN: $ perl -MCPAN -e 'install Bundle::Catalyst' This will retrieve Catalyst and a number of useful extensions and install them for you. =head2 Setting up your application Catalyst includes a helper script, C, that will set up a skeleton application for you: $ catalyst.pl My::App created "My-App" created "My-App/script" created "My-App/lib" created "My-App/root" created "My-App/t" created "My-App/t/m" created "My-App/t/v" created "My-App/t/c" created "My-App/lib/My/App" created "My-App/lib/My/App/M" created "My-App/lib/My/App/V" created "My-App/lib/My/App/C" created "My-App/lib/My/App.pm" created "My-App/Makefile.PL" created "My-App/README" created "My-App/Changes" created "My-App/t/01app.t" created "My-App/t/02podcoverage.t" created "My-App/script/server.pl" created "My-App/script/test.pl" created "My-App/script/create.pl" This creates the directory structure shown. =head2 Testing out the sample application You can test out your new application by running the server script that catalyst provides: $ cd My-App $ script/server.pl [Sun Mar 20 12:31:18 2005] [catalyst] [debug] Debug messages enabled [Sun Mar 20 12:31:18 2005] [catalyst] [debug] Loaded engine "Catalyst::Engine::CGI" [Sun Mar 20 12:31:18 2005] [catalyst] [debug] Initialized components "" [Sun Mar 20 12:31:18 2005] [catalyst] [info] My::App powered by Catalyst 4.26 [Sun Mar 20 12:31:18 2005] [catalyst] [debug] "My::App" defined "!default" as "CODE(0x83fd570)" You can connect to your server at http://localhost:3000 The server is now waiting for you to make requests of it. Try using telnet to manually make a simple GET request of the server (when telnet responds with "Escape character is '^]'.", type "GET / HTTP/1.0" and hit return twice): $ telnet localhost 3000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET / HTTP/1.0 HTTP/1.0 200 Server: Catalyst/4.26 Status: 200 Date: Sun, 20 Mar 2005 12:31:55 GMT X-catalyst: 4.26 Content-length: 40 Content-Type: text/html; charset=ISO-8859-1 Congratulations, My::App is on Catalyst! Connection closed by foreign host. $ More trace messages will appear in the original terminal window: [Sun Mar 20 12:31:55 2005] [catalyst] [debug] ******************************** [Sun Mar 20 12:31:55 2005] [catalyst] [debug] * Request 1 (0.027/s) [9818] [Sun Mar 20 12:31:55 2005] [catalyst] [debug] ******************************** [Sun Mar 20 12:31:55 2005] [catalyst] [debug] "GET" request for "" [Sun Mar 20 12:31:55 2005] [catalyst] [debug] Using default action [Sun Mar 20 12:31:55 2005] [catalyst] [info] Processing "!default" took 0.000033s [Sun Mar 20 12:31:55 2005] [catalyst] [info] Request took 0.051399s (19.456/s) The server will continue running until you interrupt it. The application can also be tested from the command line using the generated helper script, C