I've about finished integrating a large part of catalyst, most of the work having been done by Sean Comeau, Simon Dassow and me.
Parts of it are obviously based on the great portion of CPAN already in the ports tree, thanks in part to Sam Smith, Mathieu Sauve-Frankel, and others I forget. There is enough of catalyst to be usable. Not everything has been 100% tested, but I did manage to get through most of the tutorial. There is one issue I haven't figured out yet: the status_msg and error_msg stuff does not work, they don't seem to be part of the catalyst context by default now... either skip those parts of the tutorial, or add some reasonable setting for these at the right location, like in the end action. In case you want to try out catalyst, natural entry points are the catalyst-tutorial and catalyst packages.... due to its philosophy, catalyst tends to be scattered as small pieces all over the tree (`looks like a new virus called catalyst is invading the ports tree -- Marc Balmer') Catalyst is a modern perl framework for WWW development. For old fashioned farts like myself who were still doing basic CGI stuff a year ago, this is quite the revolution. After adapting to HTML::Mason and SQLite, it looks like all this is obsolete already. Okay, so Catalyst is a perl equivalent to ruby-on-rails. Since ruby still does not have a byte-code compiler, Catalyst is ways faster. Catalyst relies heavily on the MVC pattern and, as far as I can tell, it takes care of a LOT of controller details issues in a web context. A few features: - integrated web server for development. Not really fast, but trivial to debug. - interfaces to about any web server mechanism you'd like: apache, fastcgi, modperl, anything... - lots of emphasis on session management and authorization/authentication mechanisms (cookies, url states, mmap'ed files, htpasswd files, databases, roles and ACL, you name it, catalyst supports it all). - semi-automatic form writing and validation. - redirection mechanisms to avoid replay issues, passing parameters as forms, as url works effortlesly. - simple database interface, for instance with DBI class. Simple CRUD support through the Scaffolding plugin, or through a few lines of code. - some AJAX support in Prototype, and javascript extensions to come... - any presentation mechanism you like. Emphasis on Template Toolkit views, but Mason works equally well, and there's a Maypole plugin. The downside is that it's fairly complicated to understand what is really going on. Like all true object oriented modern frameworks, Catalyst has redirection hooks everywhere that allow you to plug in anything, anywhere, and apply almost magical transformations to any part of your web stuff... There are more pieces to come, as we explore what's doable with it... and there will definitely be applications based on catalyst in the near future... Have fun.