Perl Maven

Perl tutorials and courses

Modern Perl Web Frameworks

  • Mojolicious light-weight web framework with rainbows and unicorns.
  • Perl Dancer light-weight web framework to rock.
  • Catalyst The MVC web framework of Perl.
  • PSGI/Plack, the low-level superglue between Perl web application frameworks and web servers.
  • CGI, the Common Gateway Interface, for old-school web applications.

Object Oriented Perl

  • Moo, the Minimalist Object Oriented system for Perl.
  • Moose, the 'post modern' Object Oriented system for Perl.

Other Series

Projects and Collections

Code-Maven series

If you are a beginner, or would like to refresh your Perl programming knowledge, you can go over the Perl tutorial or watch the Beginner Perl Maven video course.

If you need to maintain a large piece of software written in Perl by other people in the last 5-10-15 years, that's a challenge. Especially if you did not get proper training in Perl. You are probably limited to a specific and old version of Perl. Check out, the Perl tutorial! You can probably skip the part about installing Perl, but the rest of the tutorial will be relevant for you.

Perl is often used in Test Automation. If you work in this field, or if you'd like to work in this field (it is much more fun to find bugs in other people's code than in yours :), then you can read the Perl tutorial and the series on Test Automation using Perl.

If you build new web applications - either privately or inside a company - you can start by reading the article comparing CGI, mod_perl and PSGI. From there you can go on reading the generic Perl tutorial or the articles on Mojolicious, Perl Dancer, Catalyst, PSGI/Plack, or even CGI, the Common Gateway Interface, for old-school web applications.

Recent Articles

AUTOLOAD - handling Undefined subroutines

Normally, if you call a function that does not exist perl will throw an exception Undefined subroutine ... called, however, unlike in most of the other languages you can define a default function to be called, instead of throwing that exception. This can give us all kinds of interesting solutions.

Unlike Java, C and similar languages, Perl cannot know at compile time if a function is going to exist when it is called. Well, actually Perl cannot even know which functions are going to be called in a given piece of code. Anyway this means that at run time it might happen that a none-existent function is called. In such cases normally Perl will die.

AUTOLOAD - handling Undefined subroutines

Contributing to the Open Source Perl Ecosystem

There are plenty of people who would like to contribute to Open Source and especially to Perl, but don't know what and how to start. In this page I am going to collect some of my suggestions.

If you are interested, pick one of them and run with it. If you need further help how to get started with one of the tasks, ask me in the comment section.

Contributing to the Open Source Perl Ecosystem

Pro: Testing PSGI based web applications using Plack::Test

We saw a simple example serving static files using Plack/PSGI. We can use that simple example to see how to write tests for any web applications that using PSGI. For examle plain PSGI based applications or Dancer based applications.

Testing PSGI based web applications using Plack::Test

See also articles about Python and Node.js on Code Maven.