Take Advantage of Modern Perl (Links from the YAPC Talk)


I just gave a talk at YAPC::NA 2009 entitled Take Advantage of Modern Perl. I use an extemporaneous style with terse slides, but I mentioned several modules and links worth exploring. I plan to explain some of those modules in more detail in the future. Until then, here are terse explanations and recommendations.

  • Enlightened Perl is a great organization exploring similar issues. If you don't read or participate in Planet Perl Iron Man, please do.
  • The SUPER module works around a problem in method dispatch to overridden methods.
  • The UNIVERSAL::ref module makes the ref() builtin more reliable and allows objects to override what ref() reports for them (good for overloading).
  • The Time::y2038 module makes your lexical scope in Perl -- regardless of compilation settings for 32/64 bitness and IV size -- safe for calculating dates and times past 2038. If you don't know what that subordinate clause means, you need this module. The Time::y2038::Everywhere module makes these functions safe globally.
  • The CLASS module lets you replace ugly __PACKAGE__ with pretty CLASS.
  • The autobox and autobox::Core modules turn primitives into objects so that you can call methods on them. This is difficult to explain; play with it.
  • The Moose distribution provides a powerful, extensible, usable object system for Perl 5.
  • The signatures and Method::Signatures modules provide usable function and method signatures to Perl without source filtering (but with a bit of black magic).
  • The Exception::Class module lets you throw exceptions based on objects in a clear and maintainable way.
  • The Modern::Perl module lets you enable several important but optional features in Perl 5.10 and newer with a single command.
  • The Why of Perl Roles gives several links to explain what roles are and why they're important in OO programming
  • The Module::Build is a core module that's much easier to work with (and cleaner and better maintained) than ExtUtils::MakeMaker.
  • The autodie module replaces Fatal to provide better error messages, remove boilerplate code, and allow extensibility for error reporting on builtins.
  • The Devel::Declare module provides the black magic necessary for wonderful modules such as Method::Signatures to extend Perl 5 without using Filter::Simple.
  • The MooseX::Declare module extends Perl's syntax to make Moose code prettier and easier and more declarative.
  • The Devel::NYTProf module is a working Perl profiler that doesn't randomly crash like the core profilers sometimes do.
  • The Perl::Critic module provides a framework for static code analysis of Perl 5 code. This means you can identify problems and poor style, tailoring your analysis to your local style.
  • The MooseX::MultiMethods module provides a nice syntax for multiply-dispatch methods. This is another feature easier to understand if you play with it than if I write about it.
  • The perl5i project pulls together these modules and more to work together nicely to provide better defaults for Perl 5.


Supremely nice list!

Also I like the fact that you're pressing to get perl released much more frequently.

Keep up the great work.

Very nice, thank you. (BTW: There has to be a capital ‘M’ in the MooseX::MultiMethods link, otherwise the perldoc script does not find it.)

Modern Perl: The Book

cover image for Modern Perl: the book

The best Perl Programmers read Modern Perl: The Book.

sponsored by the How to Make a Smoothie guide



About this Entry

This page contains a single entry by chromatic published on June 23, 2009 7:26 AM.

The Parsimonious Language was the previous entry in this blog.

The Value of a Pumpking is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by the Perl programming language

what is programming?