Perl 6 has been in planning and design for 5 years now. During that time the design has been almost constantly improving. Finally the Cabal is seeing a light at the end of the tunnel, and portions of Perl 6 have even been implemented (for details on that, see pugscode.org).
Still, the last year has seen many refinements and refactorings in the design, and a few new features. Amongst them are:
- Massively DWIMier and more powerful string quoting and interpolation
- Generalization of several useful operators, with for example the trans(literation) string method handling multiple before and after pairs at once, and allowing single characters to transliterate to longer strings
- The fish operator, =<>, which iterates over the command line arguments in the same way that Perl 5’s diamond does while still maintaining the wonderful laziness of Perl 6 filehandles-as-generators
- The reduce meta-operator, which allows such snazzy code as $sum = [+] @nums and $first_defined = [//] @vals
- (edit: I originally had an item from Damian’s Perl 5 modules here)Powerful add-ons to return with but
- . . . and several others that I missed as I took notes and Damian rushed to fit things in
Progress of the various Perl 6 implementations was covered in another talk, which I skipped in favor of an update on the Linux kernel (see my next blog entry). I already work on the Pugs implementation, so already know that it’s going quite well indeed. New people are always welcome, as Autrijus has managed to prove that anarchy can produce great software — just ask on irc.freenode.net #perl6 for a committer bit, and join in any way you like.
Why aren’t you already contributing to Pugs?