Perl information for binary_c V2+
---------------------------------

PERLBREW and CPANM
------------------

Please see binary_c-installation.pdf for full instructions.



I assume you will

0) Have internet access, a bash terminal, a compiler (e.g. gcc) installed 
1) Install Perlbrew
2) Build your own Perl
3) Install cpanminus
4) Install modules with cpanminus

This is how I use binary_grid, and you should too.

1) Install perlbrew with 

   curl -skL http://install.perlbrew.pl | bash

2) Build your own Perl 

First, find the VERSION you'd like to install with:

    perlbrew available

Choose a VERSION from the list.
The latest Perl is easy enough to build, e.g.

    perlbrew -v install <VERSION> -j <NTHREADS> -Dusethreads -Duselargefiles -Dcccdlflags=-fPIC -Dpager=/usr/bin/sensible-pager -Doptimize='-O3 -march=native -mtune=native'

where <NTHREADS> should be replaced by (say) the number of CPUs on your system.

... Now wait a while, go for lunch, whatever...

If the build went well (check for errors) switch to that perl

    perlbrew switch <VERSION>

3) Install cpanminus

    perlbrew -v -f install-cpanm

4) Install modules with Rob's convenient script in the binary_c tree:

   src/perl/install_modules.pl

* You should now be able to run the scripts in scripts-flexigrid.
* You should *not* have to set your PERL5LIB environment variable.

------------------------------------------------------------

SCRIPTS

* binary_grid scripts are in scripts-flexigrid/
* other useful scripts may be in scripts/

------------------------------------------------------------

MODULES

binary_grid requires a number of Perl modules to run. 

You can install these by running

chmod +x ./install_modules.pl
./install_modules.pl

Many of these are on CPAN, i.e. online, and will be installed from there.
This requires that you have an internet connection.

Many are written by Rob and will be installed from his tarballs
(tarball = .tar.gz file).

You can install tarballs yourself, e.g.

cd src/perl/modules_targz
cpanm ./<modname>.tar.gz

(note that the ./ is REQUIRED).