I’m putting together the proposal for Mastering Perl, 2nd Edition. O’Reilly would like it published by next summer.
I wrote the first edition in 2005 and O’Reilly published it in 2006. Now it’s seven years after I wrote the original. What do I need to update? Many of Perl’s new features have already shown up in Learning Perl and Intermediate Perl, but Mastering Perl has never really been about listing Perl features.
Some things I already have on my mind:
- Beefing up the logging chapter
- A better example for the Tie chapter, using NOAA’s Hourly Surface data instead of the made up DNA example
- Adding JSON to the data persistence chapter
- Various updates to the Advanced Regex chapter
__SUB__
examples- Some fancier examples for the modulinos chapter
- Devel::NYTProf in the benchmarking chapter
I don’t know if I need to add any major topics. What do you think?
perhaps something about Module::Pluggable? podtidy? Dist::Zilla?
Module::Pluggable and those sorts of things might be interesting.
podtidy seems more like a footnote. It wraps paragraphs, which is something my editor already does nicely for me. Still, a paragraph in the Pod chapter might be appropriate.
Dist::Zilla won’t be in there. For various reasons, I don’t think people should use the tool and that in a couple more years, people won’t be using it. Beyond that, those who want to use it won’t need my book for it. My rule for tools is that it shouldn’t matter what you use. That is, your choice shouldn’t affect my work. I find that Dist::Zilla does that.
Maybe continue to expand on Moose as a follow on from Intermediate Perl 2nd Edition.
I talked about Moose with my editor, and both of us think Moose deserves its own book. And, I put everything I know about Moose into Intermediate Perl, so there’s nothing left over.
What would really be nice, but is out of the scope for Mastering Perl, is an object-oriented design book for Perl and Moose and its ecosystem.
How about the intricacies of Perl’s garbage collection that would be a survey of major implementations (e.g., Active Perl) ?
There’s really one implementation of perl, since ActiveState contributes its changes to the core. Other distributions are just different packaging. There’s a Stackoverflow answer for Garbage Collection in Perl, and we talk about it in Intermediate Perl too. Perl doesn’t have anything fancy.
I can only speak from my own experience, but I’ve found that “mastering perl” has a lot to do with understanding various tools, libraries, and frameworks from CPAN. Discussing (or even recommending) a comprehensive list of stuff from CPAN is almost certainly out of scope for your book.
But, I think it might be appropriate to talk about *how* to actually explore CPAN to find the right module for the job. Now that people are using arbitrary names for modules (like “Catalyst”) it isn’t always easy to even find the modules that are appropriate. And over the years, I’ve developed my own heuristics for figuring out which CPAN modules are widely used, well tested, actively maintained.
Basically, I wish I had someone to show me the ropes of CPAN, how to find/evaluate/select a module, how to engage the authors, and how to manage CPAN modules in my development cycle.