Nothing stops you from installing the large majority of modules into custom paths you set up yourself, even without cpan. Most modules have pretty straightforward build systems that make that job easy. You can distribute any dependencies you want with the stuff you're writing as well, and use relative "use lib" paths.