In the article on how to prepare for a Perl job interview, I mentioned, one of the best ways to improve your hireability is to constantly learn new things, and constantly improve yourself.

There is a generic article on how to contribute to an Open Source project.

Let me collect a few specific related to Perl.

Finding a project

There are tons of Perl modules on CPAN, that would benefit from better documentation and/or working examples.

MetaCPAN itself is written in Perl and you can contribute to it.

If you need more directed suggestions, there are plenty of modules on the CPAN Adoption Candidates list created and maintained by Neil Bowers.

MetaCPAN provides the list of recently uploaded modules. You can look around there and find a module that you are interested in. You can event send an e-mail to the person who uploaded the most recent version, asking them if you could help.

Instead of sending an e-mail, you could also already send some improvements. But what and how?

What to contribute?

MetaCPAN links to the bug-tracking system of each module. You can find reported bugs there and sometimes even feature requests. You can try to fix a bug or implement those features.

Even if you cannot fix the bug, you could write a test case that will reproduce the bug. The testing series will introduce you to the testing system of Perl.

Alternatively, using Devel::Cover, you can create a report to see which parts of the code have tests. You could even go to CPAN Cover where you'll find test-coverage reports generated for each CPAN distribution. You could write a test case for a part of the code that is not covered yet, even if there is no reported bug in that area.

How to contribute?

Most Perl Modules use Git and GitHub as their version control system. If that's the case for the module you selected then there will be a link to it called "Repository" on the left-hand side of its MetaCPAN page.

A while ago I've prepared a screencast showing an example on how to contribute to a Perl module. Watch that and follow those steps.

Adopting a module

Adopting a module might feel to be too big a step if you have not published anything on CPAN yet, but nevertheless that's a good path for your self-education.

License and link to GitHub

A low hanging fruit is to add a license to the META files of a distribution, or if it does not have a link to its GitHub repository then add a link to GitHub.

Continuous Integration

Enable Travis-CI for Continuous Integration on Linux and OSX. Enable Appveyor for CI on Windows.

Other resources

There are tons of articles written by Neil Bowers covering topics related to CPAN and contributing to CPAN. Check out his writings.