CPAN PR Challenge -- month 1

I decided to participate in the 2015 CPAN Pull Request Challenge, in an effort to improve modules across CPAN. The challenge has gathered more than 300 participants (at the time of this writing) who have the same desire to improve CPAN.

The module that I was assigned was Cache::Memcached::Fast. A Perl XS client for Memcached. I was fully expecting to be writing Perl; So my initial reaction when I found out the module was written in C, which I have not used since college, using the Perl XS API, which I have never used and frankly looks like witchcraft, for a technology (Memcached) that I am not familiar with.

Wat?

Overcoming my anxiety; I reached out to the author Tomash for more information about the module and to find out what work he would like done on the module. Without Tomash's help I probably wouldn't even have gotten a single bug fixed, it was really an awesome way to start this challenge.

The amount of information I needed to consume to just understand what was going on in an XS program was staggering; The man pages that were the most helpful were perlxs, perlapi, and perlguts.

In the end my contribution was pretty small, I wrote a function that tested for a null pointer so a dereference did not generate a segmentation fault. All in all this was an extremely fun and educational experience. I am looking forward to next month.