Install CPAN modules using cpanm
¶
If the new box is going to be used for Perl development, you should install a set of CPAN modules. There are two ways to do this:
(a) Install them from the distro repos
(b) Build them from source
(a) is faster and more reliable. However, the distro repos don't in- clude a full set of modules. Additionally, repo copies of modules may be outdated.
We may document (a) at a later date. This revision of this document discusses (b).
Advisories:
(c) This procedure may take up to an hour or longer (d) Some builds may fail. See below for a work-around.
If a build of a given module fails due to a test failure, one work- around is to disable testing for that module. To do that, replace a command of the form:
cpanm Foo::Bar
with:
cpanm --notest Foo::Bar
If builds fail for other reasons, consult a developer.
To proceed:
bash -e /root/setupdoc/files/addcpan.sh
Note that:
(a) This must be done as "root" (b) Internet access is required (c) The work-around discussed above may be required
CPAN documentation¶
To see what a given CPAN module does, execute the command "perldoc" followed by a space and the module name. For example:
perldoc Algorithm::FastPermute
CPAN Examples¶
CPAN example: Print a sorted list of all unique permutations of an array. Skip redundant lines.¶
use strict ;
use Carp ;
use warnings ;
use Algorithm::FastPermute ('permute');
my @array = qw (dog cat woof meow woof cow milk);
my %list = ();
permute { $list {"@array\n"} = 1; } @array;
for (sort keys %list) { print; }
CPAN example: Download a file from the Web and store it locally.¶
use strict ;
use Carp ;
use warnings ;
use LWP::Simple;
die "Error: Download failed\n"
unless getstore ("https://google.com/", "/tmp/google.html");
print "File downloaded\n";
CPAN example: Compute and display an MD5 sum. The output is consistent with that produced by "md5sum -b".¶
use strict ;
use Carp ;
use warnings ;
use Digest::MD5 qw (md5_hex);
my $data = "moo\n";
my $md5sum = md5_hex ($data) ;
print "MD5 sum is: $md5sum\n" ;