The one downside for me is the TIMTOWTDI philosophy of Perl. I know that many advocates espouse this a a good thing but I sometimes wish there was just one idiomatic way to do something.
There is a way to force yourself, or your team, to do things in a specific way and that is to use the Perl::Critic
module combined with a set of your own policies. You simply pass everything you write through Perl::Critic, during a testing phase for example, and it will list everywhere you have broken the policies. After a while, a habit develops and your code becomes very consistent first time round. Great for new team members to help familiarise them with the house style.