The University of Arizona
    For questions, please open a UAService ticket and assign to the Tools Team.
Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.



Perl is installed on the operating system of each node and is currently at 5.16.3perl --version


Perl is installed on the operating system of each node and is currently at 5.16.3.  perl --version

There are two versions of Perl available on Ocelote

  • Perl 5.10.1 is the default if you just want to use the system version. Try  perl --version
  • Perl 5.22.1 is the default module provided with module load perl; instmodsh

    Code Block
    [netid@compute_hostname ~]$ perl --version
    This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
    (with 44 registered patches, see perl -V for more detail)

    Perl Module Policy

    We will provide a version of perl through modules or the operating system and the user is expected to create their own perl environment using perl-virtualenv.

    Here is For a useful helpful Perl tutorial, see: 
    Additionally, O'Reilly Media is a well regarded source for Perl 

    Installing Perl Packages Using perl-virtualenv

    One of the best things about Perl is the number of packages provided by the user community. Installing packages generally requires root access but that is not a viable solution in the HPC environment.

    There is an An easy solution . You can is to use perl-virtualenv to create a consistent personal Perl environment that will persist for each time you log in.  There is no risk of packages being updated under you for another user.  

    Here is an example session:

    Code Block[netid@login2


    Code Block
    titleExample of creating and using a Perl virtual environment
    [netid@i0n1 ~]$ module list
    Currently Loaded Modulefiles:
      1) pbspro/ my_project.   2) gcc/5.2.0
    [netid@login2 ~]$ module load perl
    [netid@login2 ~]$ perl-virtualenv my_project
    perl: /cm/shared/uaapps/perl/5.22.1/ # Create virtual environment
    perl path: /usr/bin/perl
    venv path: /home/u13uxx/netid/my_project
    [netid@login2netid@i0n1 ~]$ source my_project/bin/activate Attempting# toActivate create directory /home/u13/chrisreidy/my_project
    virtual environment
    (my_project)[netid@login2netid@i0n1 ~]$ cpanm -i Config::Trivial
    --> Working on Config::Trivial
    Fetching ... OK
    Configuring Config-Trivial-0.81 ... OK
    ==> Found dependencies: Pod::Coverage, Test::Pod::Coverage, IO::Capture
    --> Working on Pod::Coverage
    Fetching ... OK
    Configuring Pod-Coverage-0.23 ...
    Building and testing Pod-Coverage-0.23 ... OK
    Successfully installed Pod-Coverage-0.23
    --> Working on Test::Pod::Coverage
    Fetching ... OK
    Configuring Test-Pod-Coverage-1.10 ... OK
    Building and testing Test-Pod-Coverage-1.10 ... OK
    Successfully installed Test-Pod-Coverage-1.10
    --> Working on IO::Capture
    Fetching ... OK
    Configuring IO-Capture-0.04 ... OK
    Building and testing IO-Capture-0.05 ... OK
    Successfully installed IO-Capture-0.05
    Building and testing Config-Trivial-0.81 ... OK
    Successfully installed Config-Trivial-0.81
    4 distributions installed4 distributions installed
    (my_project)[netid@i0n1 ~]$