As I was 37,000 feet in the air flying across the country, I need a Perl module to extract information from a cooked template. If I was going to create that module myself, I’d call it Template::Extract.
The Comprehensive Perl Archive Network (CPAN) has so many modules that most things probably already exist. I figure out what I would call the module (and, since I’m a PAUSE admin, that’s often what they are called ;), then try to install it. I just assume it exists.
prompt$ cpan Template::Extract
The CPAN.pm module finds Template::Extract in my minicpan on my laptop (so I can install modules while on an airplane) and starts to install it, and it’s exactly what I want.
This happens quite a bit, actually, and I still think this is one of the reasons that Perl is popular. I’d be really nervous about Ruby and Python if they had the same thing (and I think they will, eventually).


We needed Perl6 12 months ago
The issue of the ongoing relevance of Perl is obviously on your mind lately, as both of your current posts seem to address the issue. I agree that CPAN is still the greatest resource that Perl has, but as you point out as Ruby and Python start to build up a greater installed base this will become less and less of an advantage. Having played with Ruby recently I was very impressed with the ease of use, elegance and rapid learning curve of the language, and I don't think that I'm the only one who thinks this. I think that the current approach to Perl6 has been a serious mistake and that it would have been much better to have had a version out 12 months ago (at least) that perhaps did not have all of the bells and whistles that are currently in the pipeline, but which demonstrated that the Perl community 'gets it' in terms of the features and capabilities that are expected to be part of a modern language. I for one would have settled for a version that had a decent OO system rather than a bolted on hack. I'm sure that everybody has a different idea of what is most important, and that it's a difficult job managing the conflicting requirements, but I can't help thinking that a phased approach where a prioritised set of improvements were delivered to a well thought and publicised schedule would have headed off the sort of questions which are starting to be asked here and elsewhere. (I particularly liked the quote in Tim O'Reilly's piece equating Perl6 to 'performance art' - I'd have probably thrown in a reference to modern dance as well, but hey, I'm just a philistine.) I like Perl a lot, it's usually the first tool that I reach for when I need to solve a problem, and I'd like to see that it stays that way for some time to come.
We needed Perl6 12 months ago
The ongoing relevance of Perl isn't actually on my mind. It's not something that I question. Tim O'Reilly answered a question about it, and I responded to that. In this post, I remarked that I don't even worry about being able to do the job in Perl because there is probably already a module that does it.
I don't worry about Perl6, and nobody else should either. Perl5 still gets the job done for me, and it still does what it has always done. That there is a major change to the language in the works is a lot more than you'll see from perceived "competitors".
Perl6 is not about improvements, so there are no phases. It's about rewriting everything to start from a fresh place. That's the first design goal. It's much better to have a clean break and be able to know if you are using Perl5 or Perl6 rather than have a multiple of intermediate versions where you have to worry about who has which interpreter and which interpreter implements which feature. We already have a bit of that with the point releases of Perl5.
Perl5 does as much as it ever did, and even mor eas people create new modules. I'm not worried at all. :)
We needed Perl6 12 months ago
I guess I didn't think that anybody was going to come and take away my Perl, but I guess the concern was that it would being to lose mind share amongst the people who make decisions about which technologies to use for particular projects (if it already hasn't).