Dist::Zilla has been the
guilty pleasure (at least for me) in terms of releasing to CPAN. Before I used that, I did it the manual way, which is not terrible but can be tedious. So I recommend that or this new thing that's come up recently, Minilla. Both mentioned already in this thread.
As long as you can afford to crap up your working environment, I recommend DZ. But I use it typically inside of a perlbrew environment where I can isolate all of the tons and tons (and TONs) of stuff you need to manage your distro using a hand few of commands and a dist.ini file. That said, next time I roll something I might try Minilla.