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

  • OOP, the classic way to write Object Oriented Perl code.
  • 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.

In the off chance you are interested in topics other than Perl, especially related to Test Automation, Continuous Integration, Continuous Deployment, DevOps, then you are welcome to check out the list of DevOps related training courses.

Recent Articles

CPAN Testers or CI system?

In the recent months I talked quite a lot about setting up CI systems for the development of Perl Modules. I have even sent pull-requests to the Git repositories to add the configuration of a CI system. Many people accepted the PR, but I hear some people think CPAN Testers are enough.

I think that the CPAN Testers are awesome, but if you care about your project you should not rely on them.

CPAN Testers or CI system?

What return is expected from a function?

Perl is very different from most other programming languages in that functions in Perl can be made aware of their environment, especially they can chechk what kind of data is expected from them? A scalar, a list? Maybe nothing?

This expectation might be different every place the function is called. In order to know what is expectation in the current call, the function can use the slightly incorrectly named wantarray function.

However Perl can be a lot more precize telling a function what is expected from it. Using the Want module the function can know exactly how many values it needd to return.

What return is expected from a function?


In Perl the our keyword is used to declare one or more package variables. More exactly it creates lexical alias to a packaga variable, but for our practical purposes our means we are allowed to use the package variable without giving the fully qualified name and without violating the rules of use strict.

With that out of the way, in most cases, you'd want to declare variables in a lexical scope using the my keyword.