Ever since Perl 5.10 came out, my soul is torn asunder by a particularly prickly dilemma.
On one hand, my love of shiny new toys urge me to go forth and use the new features of 5.10 to their full extent so that my code is clean, concise and, most important of all, spiffy.
On the other hand, my insatiable thirst for glory dictates that I should strive to make my modules accessible to the widest range of configurations possible. In that light, setting the requirement bar to Perl 5.10 is a severe drawback. Kinda like longing for world domination, but restricting oneself to invade only countries with names beginning with 'M'.
So far I pretty much went the 5.8-compatible way. But the call of the shiny is becoming just too strong, and from now on I'll try a new approach.
Conceptually, I'll divide my modules into two categories: modules that are
for general consumption (WWW::Ohloh::API, XML::XPathScript, etc),
and modules that are tools for developers (Dist::Release,
Git::CPAN::Patching, Test::Pod::Snippets).
The formers, I'll keep 5.8-compatible. For the latter, though,
I'll go on a limb and assume that they'll be used on development
machines. Machines that can afford -- nay, should be expected --
to have a Perl 5.10 binary stashed somewhere.
Now, my only hope is that by doing so I'll not alienate my user base. Well, not exactly: I also hope there is actually a user base to alienate in the first place. :-)
Leave a comment