http://www.perlmonks.org?node_id=1034306


in reply to Why upgrade perl?

5.16+ has much better Unicode support than 5.10.1, including the "unicode_strings" feature (where all strings are treated as Unicode except in the scope of use bytes or use locale), and the fc function which is useful for case-insensitive string comparisons.

Perl 5.16 has the __SUB__ keyword which acts as a coderef pointing to the current sub. This is useful for writing anonymous recursive functions.

5.14+ supports the package NAME BLOCK syntax, which is cute, but isn't going to change your world.

use v5.12 (or above) automatically enables use strict, reducing some typing.

The yada-yada operator, introduced in Perl 5.12 is handy during development.

There are beginning to be a few nice CPAN modules like Switch::Plain, Fun and Try that use the pluggable keyword API introduced in Perl 5.12/5.14.

Whether these are compelling enough reasons to upgrade will depend a lot on how you use Perl, and what you use it for. I'd certainly suggest having a copy of Perl 5.18 on a development machine to make sure that the code you write runs on it; whether you deploy it for production use is a different matter though.

package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name