I fully endorse all the suggestions centered around CPAN. Publishing your first module on CPAN is a major accomplishment. The next best thing is adopting a module. Generally speaking doing things that require coordinating with others is going to bring down your efficiency - and you might be unlucky and get mixed up with someone you can't work easily with. Publishing and maintaining an application is also inefficient if you're looking to make a real impact - chances are you're your going to be only user. Most of my contributions are around CPAN and avoiding getting mixed up in things I can't personally control. One of my favorite things ever was the orignial Pull Request Challenge. There is also a nice community that has built up around the Weekly Perl Challenges.