Changes since Perl 5.14 According to my notes, the last time I spoke about Perl updates, the current version was 5.14, which was new and shiny in 2011. Just a month ago, Perl 5 turned 20, so it's no longer a teenager. A language doesn't endure that long without having been basically sound from the start, so it's hardly surprising that developments now are rarely earth-shattering. A lot of changes in the recent versions are devoted to ensuring that new and improved features can be incorporated without breaking old code. A good deal of the updates are to the core modules, rather than the language itself. One of the problems I found while preparing this talk was the extreme obscurity of many of the changes, and consequent difficulty of even explaining them to a general audience, let alone making them interesting. In many cases, it seems that if you understand them, it was probably your bug report that initiated them in the first place. However, I'll accept the challenge, but I'll skip some. May 2012 brought 5.16.0. Judging by the very modest changes in the 3 point releases, the update was fairly trouble-free. Changes: use VERSION, where VERSION is something like v5.16 or 5.016, now clears all the old features before enabling the new set: use 5.016; # only 5.16 features enabled here use 5.014; # only 5.14 features enabled here (not 5.16) Which would be a pretty strange thing to do like that, but might be needed to protect some old code that would otherwise break. Anything 5.12 or later enables "use strict" by default but explicit use strict and no strict now override the version declaration, even when they come first: no strict; use 5.012; # no strict here You can do even stranger things with "no feature", but I don't propose to encourage that sort of behaviour. Something else that should be discouraged; $[ is now disabled under use v5.16. It can be turned on or off explicitly with use feature 'array_base' . Likely one of the biggest features of 5.16 is current_sub. If you "use v5.16" or "use feature 'current_sub' __SUB__ returns a reference to the current subroutine, making it easier to write recursive closures. Probably not a bad idea even in an ordinary recursive subroutine, because the behaviour will not change, even if you rename the routine. use 5.16.0; my $factorial = sub { my ($x) = @_; return 1 if $x == 1; return($x * __SUB__->( $x - 1 ) ); }; say $factorial->(3); eval not knowing whether it's dealing with bytes or unicode can be disambiguated with unicode_eval and evalbytes features that force eval to work one way or the other. Guess how? substr used as an lvalue has had a change made to its behaviour. If you've done that, you might want to check the delta to see if it affects you. tied now returns a value that lets you weaken the tie. Unicode support seems to be one of the bigger features of recent changes. We're not in ASCII any more, Toto, but it's hard to be definitive about features the Unicode people haven't completely sorted out themselves. Characters have been renamed, as documented in the perldelta. Perl's tracking the changes, but there are invitable delays. One is particularly noteworthy; since the dawn of time, ASCII 007 has been BELL, but now that relates to some feature of Japanese cellphones, and ALERT is what will ding the console bell. See charnames in perldoc for details. Unicode characters can also be used in Perl code; I hope I don't have to work with any that does that, unless I have the same keyboard. use locale has acquired some extra features, and there's a "foldcase" feature fc to enable comparison of Unicode strings. XS also has some new features relating to Utf-8. A couple of small changes to special variables; $$ is now writable, though I have difficulty understanding why you'd want to do that, and $^X is now an absolute path on some of the BSD variants. (Perl executable's name.) There are some changes to the debugger, which you'll probably need if you start messing around with Perl's CORE:: functions; hackers only? There are a lot of upgrades to modules and documentation, along with future deprecations and warnings about build features for really old OSs. At least half of the delta deals with features in the murky depths of Perl's internals that shouldn't concern anyone but Perl porters. If you're interested in that stuff you're probably smarter than I am.