Personal Perl Packages

 

The local::lib Perl module lets you install packages in a dedicated location under your home directory, so that you don't need permission to install in the O2-wide directories in /n/app or /usr. On this page, we use the naming convention of perl5-O2 for the personal Perl package directory, though you can name it whatever you like. We use the perl/5.30.0 module for setting up local::lib in the instructions below, but it will also work with other available Perl modules on O2.

Turning on local::lib

You can set up local::lib so that each time you login, you'll be using a relatively modern version of Perl and local::lib. That way, the modules you install in your local perl5-O2 directory today will be available next time you login.

The following three commands will modify your .bashrc file to always look in your local directory first for Perl packages:

1 2 3 echo 'module load gcc/6.2.0' >> ~/.bashrc echo 'module load perl/5.30.0' >> ~/.bashrc echo '[ $SHLVL -eq 1 ] && eval $(perl -I$HOME/perl5-O2/lib/perl5 -Mlocal::lib=~/perl5-O2)' >> ~/.bashrc

The above commands need to be done only once ever.



Alternatively, you can start up local::lib manually whenever you want (once per login), to install new packages in your local perl5-O2 directory, or to use packages in that directory:

1 2 3 module load gcc/6.2.0 module load perl/5.30.0 eval `perl -Mlocal::lib=~/perl5-O2`

Using local::lib

That's it! Once you've turned it on, installing Perl modules with tools like cpan or cpanm will automatically install them to your local perl5-O2 directory. To make modules that you installed to your local library available within a Perl script, add a use statement to the top of your script:

1 2 3 4 5 6 7 #!/usr/bin/env perl use Nameofmodule; # rest of code goes here