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.

affiliated with Modern Perl Whitepapers



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.

Sponsored by Make a Smoothie guide and the Trendshare how to invest guide

Powered by the Perl programming language

what is programming?