I'm in the process of putting together a portable build of Perl based on the fully open source Strawberry Perl distribution. The intention of this is for it to be placed in CommonFiles for use by other portable apps, like portablized Java is now.
Here's a little background on how strawberry perl is set up followed by my opinions on how to proceed:
Strawberry perl includes not only perl, but enough of MinGW to also compile CPAN modules. This makes it work nearly exactly like every other version of Perl out there except ActivePerl. ActivePerl's method of dealing with modules is to instead include a package manager which downloads pre-compiled modules from known repositories instead of compiling as needed. Both methods have pros and cons. Compiling isn't for the meek, but pre-compiled packages means you're waiting on someone else to do the work for you. Of course ActivePerl isn't open source so we can't include it (yet..) but we probably shouldn't actively preclude it from working either.
The way Strawberry perl is set up to handle this with a folder structure like this:
+--Strawberry +--c (MinGW files) +--CPAN (CPAN sources and build folders) +--Perl (traditional Perl folder) +-- bin (binaries) +-- lib (libraries) +-- site (modules)
This is vs ActivePerl's structure:
+--Perl +--bin (binaries) +--lib (libraries) +--site (modules) +--(other AP specific folders not used when running scripts)
The two Perl folders are interchangeable, and are all that are required to run perl scripts. As long as you have the required modules in each, you can use either to run perl scripts. My thought is that for Portable perl using Strawberry perl we should probably only include the Perl folder. This would allow us to standardize on CommonFiles\Perl in Portable Apps that require Perl, and users could either use our package or drop in ActivePerl if they like. Unfortunately this method precludes using Portable (strawberry) Perl fully to compile new modules.
One other thing to consider is size.. The Perl folder is 36MB, or about 31 when compressed. The entire strawberry distribution is over 120MB...
Anyone want to chime in with their opinion, or have a better idea?