lib::byversion - add paths to @INC depending on which version of perl is running.
perl
version 0.001001
PERL5OPT="-Mlib::byversion='$HOME/Foo/Bar/%V/lib/...'"
or alternatively
use lib::byversion "/some/path/%V/lib/...";
So you have >1 Perl Installs. You have >1 Perl installs right? And you switch between running them how?
Let me guess, somewhere you have code that sets a different value for PERL5LIB depending on what Perl you're using. Oh you use perlbrew?
perlbrew
This is a slightly different approach:
$HOME/Foo/Bar/5.16.0/lib/... $HOME/Foo/Bar/5.16.1/lib/... $HOME/Foo/Bar/5.16.2/lib/...
%ENV
The right PERL5LIB gets loaded based on which perl you use.
Yes, yes, catch 22, lib::byversion and its dependencies need to be in your lib to start with.
lib::byversion
O.k. That is a problem, slightly. But assuming you can get that in each perl install somehow, you can load each perl's user library directories magically with this module once its loaded.
And "assuming you can get that in each perl install somehow" =~ with a bit of luck, this feature or something like it might just be added to Perl itself, as this is just a prototype idea to prove it works ( or as the case may be, not ).
And even if that never happens, and you like this module, you can still install this module into all your perl's and keep a separate user-PERL5LIB-per-perl without having to use lots of scripts to hold it together, and for System Perls, you may even be fortunate enough to get this module shipped by your OS of choice. Wouldn't that be dandy.
user-PERL5LIB-per-perl
OS
use lib::byversion $param lib::byversion->import($param) perl -Mlib::byversion=$param
etc.
lib::byversion expects one parameter, a string path containing templated variables for versions.
Current defined parameters include:
%V
This is an analogue of $^V except :
$^V
$]
v
Example:
%V = 5.16.9
%v
This is the same as $] on your Perl.
%v = 5.016009
More may be slated at some future time, e.g.: to allow support for components based on git sha1's, but I figured to upload something that works before I bloat it out with features nobody will ever use.
git
sha1
Kent Fredric <kentfredric@gmail.com>
This software is copyright (c) 2013 by Kent Fredric <kentfredric@gmail.com>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install lib::byversion, copy and paste the appropriate command in to your terminal.
cpanm
cpanm lib::byversion
CPAN shell
perl -MCPAN -e shell install lib::byversion
For more information on module installation, please visit the detailed CPAN module installation guide.