title: How do I tell CPAN.pm to use an application-specific mini-cpan?
body: <p>Is there a way to use app-specific mini-CPANs (to ensure specific module versions for different apps and make an install work without net access). The 'standard' mini-cpan way of things relies on setting 'o conf urllist' with a file url in your CPAN/Config.pm </p>
  
  <p>That's fine with one single mini-cpan. However, I need to automate having a CPAN install from a different directory for each app (local to the app), as each app has different version requirements.</p>
  
  <p>The following <em>almost</em> works, but then has only a partially working shell, and still fetches from the web instead of using the mini-cpan from <code>$file_url</code> location:</p>
  
  <pre><code>use CPAN;
  use FindBin qw($Bin);
  
  my $file_url="file:///$Bin/../cpan";
  CPAN::Shell-&gt;o(qw( conf urllist ),$file_url);
  
  CPAN::shell();
  </code></pre>