Search for '{{search_term}}'
Perl tutorials and courses
- Perl Tutorial just a plain Perl tutorial. Nothing fancy.
- Beginner Perl Maven video course slidecast of the training material.
- Advanced Perl Maven video course mixed slidecasts, screencasts and plain articles.
- Test Automation using Perl for people who really want to sleep well.
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
- Perl and MongoDB, the NoSQL database used in Perl programs.
- AnyEvent, asynchronous programming.
- Net::Server the framework to build TCP/IP servers.
- MetaCPAN - articles for CPAN users, CPAN authors, client developers, and MetaCPAN developers.
- Perl Maven TV Show is a collection of interviews with Perl developers.
- SVG - Scalable Vector Graphics
Projects and Collections
- The search.cpan.org cloning project - Implementing a CPAN search engine using Plack/PSGI with MetaCPAN back-end.
- Command line phonebook with MongoDB and Moo
- Indexing e-mails in an mbox
- Counter Examples Various solution on the simple task of building a counter.
- Becoming a co-maintainer of a CPAN module - refactoring a CPAN module
- Perl::Critic lint-like static analyzer for Perl.
Code-Maven series
- Angular JS
- Handlebars the HTML templating system written in JavaScript.
- JavaScript
- NodeJS
Recent Articles
Switch-Case statement in Perl 5
People coming from other languages often ask how to use the switch case statements in Perl 5.
In a nutshell, you always use if, elsif, and else.
The longer answer is as follows:
Test for expected warnings
There are many modules with function that would give a warning in certain situations. This can be a deprecation warning, when the function is left in to provide backward compability, but you actually want to remove it in the future.
Or, it can be warning of improper input values if for some reason you do not want to throw an exception.
In either case, the warning must stay there as changes are made to the code-base. That warning is now part of API of the module and as such we should write a test that will make sure the warning isn't removed by accident or by someone who likes to eliminate warnings....
Organizing a test script with subtests
As our test script grows we face several issues.
One is that most humans cannot count more than 10. So when the number of test-units passes that number we will constantly make mistakes of the number of tests and soon will will give it up, using a solution such as no_plan.

