Try out pinto, it's like a private CPAN server. Via commandline you can add your private modules to it, and you can use it with cpanm as a mirror (both file based and webserver).
It's worth noting that with pinto, you're not just limited to hosting your own modules, but can import modules from CPAN too. (This is especially useful for keeping a copy of your dependencies.) You can "pin" those modules at known good version numbers. So if everything goes pear-shaped upstream, you're sitting pretty!
Also look at Stratopan, a cloud-hosted version of pinto.
use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name