perl-begin / src / uses / web / index.html.wml

Full commit
#include '../template.wml'

<latemp_subject "Perl for CGI and Web Programming" />

Perl 5 was <b>one of the first available technologies</b> for automating a
web-server, and is still considered <b>one of the most powerful</b> and most
cost-effective ones, <b>today</b>. Once you learn the core language, and some
HTML and HTTP concepts, programming a simple CGI callback or form handler is
very easy and straightforward.

<define-tag cgi_course_url whitespace="delete">

Users are <b>recommended to start</b> by first reading
<a href="">the HTML Dog tutorials</a> for learning XHTML
and CSS (without coverage of Perl) and then
<a href="<cgi_course_url />"><b>Ovid's
CGI Course</b></a>. The other links here may also prove useful.

<h2 id="tutorials">Tutorials</h2>

<h3 id="htmldog"><a href="">HTML Dog HTML &amp; CSS Tutorials</a></h3>

Recommended best practice tutorials for getting up-to-speed with XHTML and
CSS, teaching valid code and good practices.

<h3 id="ovid-cgi-course"><a href="<cgi_course_url />">Ovid's CGI

A free CGI Course by Curtis Poe (Ovid) for people who already know a little Perl and
a little HTML.

<h3 id="our-cgi-get-started"><a href="<wiki_link url="CGI_Getting_Started" />">Our own CGI Getting Started</a></h3>

In the Wiki.

<h2 id="interfaces">Interfaces</h2>

<h3 id="plack"><a href="">Plack/PSGI</a></h3>

PSGI is an interface between Perl web applications and web servers, and Plack
is a Perl module and toolkit that contains PSGI middleware, helpers and
adapters to web servers.

Using Plack and PSGI is more recommended than using the old interface.

<h2 id="frameworks">Web Frameworks</h2>

<h3 id="catalyst"><a href="">Catalyst</a></h3>

A flexible web framework for Perl, with many useful modules for it on
CPAN, that provide interfaces to many other modules. After learning it,
one can build web applications with ease.

<h3 id="dancer"><a href="">Dancer</a></h3>

A micro web development framework for Perl that is succinct and flexible
and allows writing small or quick-and-dirty web applications with ease.
It started as a Perl port of the Ruby micro-framework
<a href="">Sinatra</a>.

<h3 id="mojo"><a href="">Mojolicious and Mojolicious::Lite</a></h3>

Self-contained web-development frameworks for Perl 5.
“Mojolicious” is similar in scope to Catalyst, while “Mojolicious::Lite” is
a micro-web-development framework, similar to <a href="#dancer">Dancer</a>.

Being self-contained ("The Web in a box"), Mojolicious re-invents many
<a href="$(ROOT)/topics/cpan/">CPAN</a> wheels (possibly better, but still
different), which may be a good or a bad thing.

<h3 id="cgi-app"><a href="">CGI::Application</a></h3>

CGI::Application is an older attempt at a web development framework for
Perl, but is likely no longer recommended and is showing its age. If you're
interested in developing web applications quickly you should look at
<a href="#dancer">Dancer</a> instead.

<h2 id="preproc">Frameworks as Preprocessors</h2>

<h3 id="mason"><a href="">HTML::Mason</a></h3>

A portable solution for a dynamic maintenance of a Perl site. Very powerful
and feature-rich. Also cross-platform.

<h3 id="apache-asp"><a href="">Apache::ASP</a></h3>

An implementation of the Active Server Pages for Perl on UNIXes. Compatible
with the Perl ASP on Microsoft's IIS server, and so provides a cross-platform