perlall is like a better perlbrew with a lot of testing features. The perls are in the default /usr/local/bin/, and /usr/local/lib/perl5/VERSION paths, instead of locally, and . You need write access to the default PREFIX /usr/local, e.g. via "sudo". It does not use local::lib, does not mangle "PERL5LIB" and builds and keeps sane global perl installations with special suffices, without the need to save and restore internal states. The suffices are used in postprocessing scripts.
The currently used perl together with more options is stored as alias "p" in ~/.perlall, which can be sourced by your .profile.
Version numbers look like "5.xx.x" and a understood perl "suffix" can be any of:
d DEBUGGING -nt non-threaded, or -m multi @xxxxxx git ids / branch names
Of course you can add any other suffix, like -clang, llvm, asan, 64bit, ... You want to switch to use the "thr" suffix, then the default is non-threaded. This behaviour is controlled via the config setting "usethrsuffix=1". But be consistent to interpret the logfiles.
For older perls special patches are applied to successfully build them. "archname" and the archlibs are extended by "-debug" and special git suffices. The installed perl binary and on windows the perl.dll ditto.
I use perlall on cygwin, linux (debian+centos), freebsd, openbsd and solaris, with bash, dash and ksh. Supporting other platforms besides VMS should not be hard. freebsd needs sudo from ports. mingw (strawberry) support is planned.
Most commands always create a log file with the command, platform and version, like log.maketest-centos5-5.10.1d-nt or log.makeinstall-osx10.6.8-5.15.4, log.build-osx10.6.8-5.15.4d-nt@30cb48da.
In B::C there are post-processing scripts status_upd and store_rpt for those generated logfiles.