HPC:Perl

From HPC wiki

Perl

Perl version 5.10.1 has been installed across the cluster, along with the popular BioPerl libraries.

User installed Perl Modules from CPAN using CPAN Minus

CPAN Minus is a light-weight replacement for CPAN. In order to install your own Perl modules, you can use the CPAN Minus tool (cpanm) with the --local-lib option:

[asrini@node063 ~]$ cpanm --help
Usage: cpanm [options] Module [...]

Options:
  -v,--verbose              Turns on chatty output
  -q,--quiet                Turns off the most output
  --interactive             Turns on interactive configure (required for Task:: modules)
  -f,--force                force install
  -n,--notest               Do not run unit tests
  --test-only               Run tests only, do not install
  -S,--sudo                 sudo to run install commands
  --installdeps             Only install dependencies
  --showdeps                Only display direct dependencies
  --reinstall               Reinstall the distribution even if you already have the latest version installed
  --mirror                  Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/)
  --mirror-only             Use the mirror's index file instead of the CPAN Meta DB
  --prompt                  Prompt when configure/build/test fails
  -l,--local-lib            Specify the install base to install modules
  -L,--local-lib-contained  Specify the install base to install all non-core modules
  --auto-cleanup            Number of days that cpanm's work directories expire in. Defaults to 7

Commands:
  --self-upgrade            upgrades itself
  --info                    Displays distribution info on CPAN
  --look                    Opens the distribution with your SHELL
  -V,--version              Displays software version

Examples:

  cpanm Test::More                                          # install Test::More
  cpanm MIYAGAWA/Plack-0.99_05.tar.gz                       # full distribution path
  cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz           # install from URL
  cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz            # install from a local file
  cpanm --interactive Task::Kensho                          # Configure interactively
  cpanm .                                                   # install from local directory
  cpanm --installdeps .                                     # install all the deps for the current directory
  cpanm -L extlib Plack                                     # install Plack and all non-core deps into extlib
  cpanm --mirror http://cpan.cpantesters.org/ DBI           # use the fast-syncing mirror

You can also specify the default options in PERL_CPANM_OPT environment variable in the shell rc:

  export PERL_CPANM_OPT="--prompt --reinstall -l ~/perl --mirror http://cpan.cpantesters.org"

Type `man cpanm` or `perldoc cpanm` for the more detailed explanation of the options.


[asrini@node063 ~]$ cpanm -l perl5 Astro::Time
--> Working on Astro::Time
Fetching http://www.cpan.org/authors/id/C/CP/CPHIL/Astro-0.75.tar.gz ... OK
Configuring Astro-0.75 ... OK
Building and testing Astro-0.75 ... OK
Successfully installed Astro-0.75
1 distribution installed

[asrini@node063 ~]$ tree perl5/
perl5/
├── lib
│   └── perl5
│       ├── Astro
│       │   ├── Coord.pm
│       │   ├── Misc.pm
│       │   └── Time.pm
│       └── x86_64-linux-thread-multi
│           ├── auto
│           │   └── Astro
│           └── perllocal.pod
└── man
    └── man3
        ├── Astro::Coord.3pm
        ├── Astro::Misc.3pm
        └── Astro::Time.3pm

8 directories, 7 files

Installing other perl tools not in CPAN

Refer to the tool's documentation, but usually you supply a PREFIX or INSTALL_BASE to perl Makefile.PL.

Configuring your Perl environment to use local Modules

In order to take advantage of these modules and manpages, you will need define a directory to install them to as well as set a proper value for PERL5LIB.

To define the proper environment variables, you can use the perl5lib environment module:

# add to .bashrc or .tchsrc file
module load perl5lib

Alternatively, you can put the following in your .bashrc file:

 
export PERL5LIB=~/perl5/
export PATH=$PERL5LIB/bin:$PATH
export MANPATH=$PERL5LIB/man:$MANPATH

Running Perl scripts non-interactively

Shown below is a sample Perl script:

$ cat simple.pl
#!/usr/bin/env perl
use warnings;
print "Hello!\n";

The above script can be run on the PMACS HPC cluster:

$ bsub -e simple.e -o simple.o perl simple.pl

Other Pages