Apress

The Definitive Guide to Catalyst

Writing Extensible, Scalable and Maintainable Perl-Based Web Applications

By Kieren Diment , Matt Trout

The Definitive Guide to Catalyst Cover Image

Learn to build web applications with Catalyst, the popular open-source web framework based on the Perl programming language. The Definitive Guide to Catalyst: Writing Extendable, Scalable, and Maintainable Perl-Based Web Applications is a definitive guide to Catalyst version 5.8.

Full Description

  • ISBN13: 978-1-4302-2365-8
  • User Level: Intermediate to Advanced
  • Publication Date: July 8, 2009
  • Available eBook Formats: PDF
  • Print Book Price: $54.99
  • eBook Price: $38.99
Buy eBook Buy Print Book Add to Wishlist

Related Titles

Full Description

Learn to build web applications with Catalyst, the popular open source web framework based on the Perl programming language. The Definitive Guide to Catalyst: Writing Extendable, Scalable, and Maintainable Perl–Based Web Applications is a definitive guide to Catalyst version 5.8. This book contains

  • Training materials for new and experience programmers.
  • Worked examples and cookbook–style recipes of common web application programming tasks
  • Fundamentals of web application design and best–practice application style

What you’ll learn

  • Write web applications with Catalyst and Perl.
  • Design for extendability and code reuse.
  • Understand deployment options for high– and low–traffic sites.
  • Use DBIx::Class, Moose, and Template Toolkit.
  • Understand the Catalyst dispatcher and request cycle.
  • Deal with common web programming requirements: authentication and authorization, web services, sending e–mail, serving streaming media.

Who this book is for

The primary audience for this book is existing Perl programmers who want more information on writing robust maintainable and extendable web applications. This group is comprised of four subgroups:

  • Experienced perl programmers wanting to update their web programming skills (for example, CGI.pm, mod_perl, and Mason programmers)
  • Intermediate/Late beginner programmers wanting to learn rapid, extendable, maintainable web programming techniques in Perl
  • System administrators and other non–web users of Perl (e.g., bioinformatics workers) who want to learn modern Perl web development techniques
  • Existing catalyst programmers who want to learn about best practices for catalyst development

This book is also for programmers who want to understand web application design and development more thoroughly.

Table of Contents

Table of Contents

  1. Introducing the Catalyst Web Application Framework
  2. Catalyst Setup and Background Knowledge
  3. Your first Catalyst Application
  4. Extending LolCatalyst-Lite
  5. Deployment
  6. Database Models
  7. The Catalyst Dispatcher
  8. Authentication and Authorization
  9. Interacting with Web Services in Your Applications
  10. Extending Catalyst
  11. Catalyst Cookbook
  12. The Reaction Component UI Framework
Source Code/Downloads

Downloads are available to accompany this book.

Your operating system can likely extract zipped downloads automatically, but you may require software such as WinZip for PC, or StuffIt on a Mac.

Errata

If you think that you've found an error in this book, please let us know about it. You will find any confirmed erratum below, so you can check if your concern has already been addressed.

* Required Fields

On page 26:

www.example.com no longer sends any content.

On page 30:
t/00-basic.t should be t/00-load.t in two places.

On page 59:
Second paragraph references appendix C.

There is no appendix C.

On page 70:

This portion won't work :

my $request = GET('http://localhost');
my $response = request($request);

one should have :

use LWP::UserAgent;

my $request = GET("http://localhost:3000");
my $ua = LWP::UserAgent->new;
my $response = $ua->request($request);

On page 154:

In the #Send the user to view the newly created user

the line

$c->controller('AuthUser')->action_for('profile'),

Should be

$c->controller('AuthUsers')->action_for('profile'),