Question: I didn't realize until recently that Perl 5.10 had significant new features and I was wondering if anyone could give me some good resources for learning about those. I searched for them on Google and all I found was some slides and a quick overview. Some of the features (to me at least) would be nice if they had more explanation.

Any links would be appreciated.

-fREW

Answer: 
There's been a string of articles in [Perl Tips](http://perltraining.com.au/tips/) about Perl 5.10:

* [Regular Expressions in Perl 5.10](http://perltraining.com.au/tips/2008-02-08.html)
* [Perl 5.10: Defined-or and state](http://perltraining.com.au/tips/2008-03-03.html)
* [Switch (given and when)](http://perltraining.com.au/tips/2008-03-12.html)
* [Perl 5.10 and Hash::Util::FieldHash](http://perltraining.com.au/tips/2008-03-25.html)
* [Smart-match in Perl 5.10](http://perltraining.com.au/tips/2008-04-18.html)

There are also my *What's new in Perl 5.10* slides on [Perl Training Australia's presentations page](http://perltraining.com.au/tips/2008-04-18.html), but since they were written before 5.10 was released, some things may have changed slightly. I believe that rjbs' [Perl 5.10 for people who aren't totally insane](http://www.slideshare.net/rjbs/perl-510-for-people-who-arent-totally-insane/) now covers everything my slides used to.

All the best,

*Paul*

*Mandatory bias disclosure: I wrote almost all of the resources mentioned in this post,*
I found this [article](http://use.perl.org/articles/07/12/26/1628211.shtml) useful.

This [one](http://www.regex-engineer.org/slides/perl510_regex.html) is more focused on 5.10 Advanced Regular Expressions.

And also [A beginners' Introduction to Perl 5.10](http://www.perl.com/pub/a/2008/04/23/a-beginners-introduction-to-perl-510.html).

Finally, this excellent [summary](http://www.perlmonks.org/?node_id=654086) on why you should start using Perl 5.10 and from which I extracted the following:

* state variables No more scoping variables with an outer curly block, or the naughty my $f if 0 trick (the latter is now a syntax error).
* defined-or No more $x = defined $y ? $y : $z, you may write $x = $y // $z instead.
* regexp improvements Lots of work done by dave\_the\_m to clean up the internals, which paved the way for demerphq to add all sorts of new cool stuff.
* smaller variable footprints Nicholas Clark worked on the implementations of SVs, AVs, HVs and other data structures to reduce their size to a point that happens to hit a sweet spot on 32-bit architectures
* smaller constant sub footprints Nicholas Clark reduced the size of constant subs (like use constant FOO => 2). The result when loading a module like POSIX is significant.
* stacked filetests you can now say if (-e -f -x $file). Perl 6 was supposed to allow this, but they moved in a different direction. Oh well.
* lexical $\_ allows you to nest $\_ (without using local).
* \_ prototype you can now declare a sub with prototype *. If called with no arguments, gets fed with $* (allows you to replace builtins more cleanly).
* x operator on a list you can now say my @arr = qw(x y z) x 4. (Update: this feature was backported to the 5.8 codebase after having been implemented in blead, which is how Somni notices that it is available in 5.8.8).
* switch a true switch/given construct, inspired by Perl 6
* smart match operator (~~) to go with the switch
* closure improvements dave\_the\_m thoroughly revamped the closure handling code to fix a number of buggy behaviours and memory leaks.
* faster Unicode lc, uc and /i are faster on Unicode strings. Improvements to the UTF-8 cache.
* improved sorts inplace sorts performed when possible, rather than using a temporary. Sort functions can be called recursively: you can sort a tree
* map in void context is no longer evil. Only morally.
* less opcodes used in the creation of anonymous lists and hashes. Faster pussycat!
* tainting improvements More things that could be tainted are marked as such (such as sprintf formats)
* $# and $\* removed Less action at a distance
* perlcc and JPL removed These things were just bug magnets, and no-one cared enough about them.