One other route you can take is to use
PAR it enables you among other things to use and incluse large portions of your code from web servers or ftp servers. I think it can be setup to cache the includes locally and just update on change as well. It may be worth a look for you. From the relevent parts of the docs:
On-demand library fetching
With LWP installed, your can use remote PAR files:
use PAR;
use lib 'http://aut.dyndns.org/par/DBI-latest.par';
use DBI; # always up to date!
Modules are cached under $ENV{PAR_TEMP}
Auto-updates with LWP::Simple::mirror
Download only if modified
Safe for offline use after the first time
May use SIGNATURE to prevent DNS-spoofing
Makes large-scale deployment a breeze
Upgrades from a central location
No installers needed