It's been quite a while in the making, but berrybrew version 1.23 now has the ability to "clone" modules from one Perl instance into another.
It's currently a two-step process.
berrybrew switch into the Perl instance you want to export the module list from, then...
berrybrew modules export
This will create a text document in a newly created
modules directory within your Perl installation directory (by default,
C:\berrybrew), named after the version of Perl you exported the module list from (eg:
5.20.3_64). This file has a single distribution name per line.
You can go ahead and edit this file (remove or add as many distribution names as you like), then when you're ready to import into a different Perl instance, simply
berrybrew switch to it (note that as always, when switching Perls, you must close the command window and open a new one), then:
berrybrew modules import
That will display a list of all available export lists:
run the command with one of the following options: 5.16.3_64 5.20.3_64
...simply do what it says there:
berrybrew modules import 5.20.3_64
This can take a very, very long time, so it's advised to only import on a Perl instance that's newer than Perl you exported from. That, or significantly clean the file up for unneeded distributions.
Another benefit to this system, is that you can manually create a module "bundle" file within the mentioned "modules" directory, and add all distributions you prefer on all of your Perls. So:
- create a
- add in any distributions you want to automatically and easily install
- switch to the Perl instance you want to install into (or just make this habit for each new install you perform)
berrybrew modules import base_modules_templateto have your custom distribution list installed automatically
You can remove all exported files by using the
berrybrew clean modules command, but beware that if you have any manually created export files per above, they will be removed as well. I've got an issue open for the next release so that
clean modules leaves any custom files in place.
Most of the other changes were quite minor this round, mainly back-end stuff, doc updates/fixes and test additions/modifications, along with an updated
perls.json file with the newly released 5.30 version.
Feedback, as always, is welcome (as are any bug tickets).