Usando o CPAN

Daniel de Oliveira Mantovani
Publicado em 03/12/2009

r1 - 03 Dec 2009 - DanielMantovani

Usando o CPAN

O Comprehensive Perl Archive Network (CPAN), é uma grande coleção de software Perl e documentação,o CPAN nada mais é do que mais um módulo Perl. Você só precisa procurar o que você quer: http://search.cpan.org Tem mais de 15 mil módulos lá, quase tudo o que você precisa está lá, você não precisa ficar perdendo seu tempo, o que é mais incrível é que a cultura Perl é fortíssima em testes, isso garante que os módulos funcionem em qualquer lugar, e caso não funcionem você vai saber o que está errado.

Imagina que você precisa escrever um software que precisa fazer um "get" simples em um website, ao invés de escrever um monte de código, você usa um módulo Perl:

 #!/usr/bin/perl

 use strict;
 use warnings;
 use LWP::Simple;

 my $html = get('http://www.perl.org.br');

 print $html;

Fácil e simples, mas como instalar o tal módulo ? Qualquer unix-like já vem com o CPAN instalado(bom, é isso que eu acredito), sendo assim é só digitar:

 $cpan

Pronto agora você está na shell do CPAN, digite "h" para ajuda:

 cpan[1]> h

 Display Information                                                (ver 1.9402)
  command  argument          description
  a,b,d,m  WORD or /REGEXP/  about authors, bundles, distributions, modules
  i        WORD or /REGEXP/  about any of the above
  ls       AUTHOR or GLOB    about files in the author's directory
     (with WORD being a module, bundle or author name or a distribution
     name of the form AUTHOR/DISTRIBUTION)

 Download, Test, Make, Install...
  get      download                     clean    make clean
  make     make (implies get)           look     open subshell in dist directory
  test     make test (implies make)     readme   display these README files
  install  make install (implies test)  perldoc  display POD documentation

 Upgrade
  r        WORDs or /REGEXP/ or NONE    report updates for some/matching/all modules
  upgrade  WORDs or /REGEXP/ or NONE    upgrade some/matching/all modules

 Pragmas
  force  CMD    try hard to do command  fforce CMD    try harder
  notest CMD    skip testing

 Other
  h,?           display this menu       ! perl-code   eval a perl command
  o conf [opt]  set and query options   q             quit the cpan shell
  reload cpan   load CPAN.pm again      reload index  load newer indices
  autobundle    Snapshot                recent        latest CPAN uploads

Como a ajuda diz para instalar um módulo é só usar o "install", vamos instalar o LWP::Simple

 cpan[2]> install LWP::Simple

Pronto, a mágica está feita.

Atualizando o CPAN

A primeira coisa que você deve fazer antes de instalar qualquer coisa é atualizar o CPAN:

 $perl -MCPAN -e 'install CPAN'

Adicionando facilidades

Uma coisa que deixa o CPAN muito mais "legal" é instalar o Bundle::CPAN: Quando você instala esse módulo, você pode usar coisas interessantes na shell do CPAN, por exemplo você pode apertar a sete para cima e ver os últimos comandos que você digitou, você ganha alguns recursos na shell do CPAN.

 $perl -MCPAN -e 'install Bundle::CPAN'

Usando um host mais rápido

O CPAN por padrão vem com o host: http://cpan.org. O download no cpan.org não é muito rápido, as vezes demora e nem sempre a velocidade é a esperada. A Yahoo tem um mirror do CPAN, o mirror da Yahoo é muito rápido, é interessante usa-lo como o padrão:

 $cpan
 cpan[1]> o conf urllist http://cpan.yahoo.com
 cpan[2]> o conf commit

Pronto, agora o seu mirror é o da Yahoo, você pode ver a lista completa aqui: http://search.cpan.org/mirror

Seguindo os pré-requisitos

Outra coisa muito chata é toda vez que você precisa de um pré-requisito o CPAN pergunta se você quer instalar ou não, o Catalyst por exemplo tem muitas dependências ficar apertando o enter toda hora enche o saco. Para acabar com isso é só configurar uma variável chamada: "prerequisites_policy". Vamos ver as opções que esta variável oferece:

 cpan[1]> o conf init prerequisites_policy
 The CPAN module can detect when a module which you are trying to build
 depends on prerequisites. If this happens, it can build the
 prerequisites for you automatically ('follow'), ask you for
 confirmation ('ask'), or just ignore them ('ignore'). Please set your
 policy to one of the three values.




 Policy on building prerequisites (follow, ask or ignore)? [ask]

Escolha a opção follow:

 Policy on building prerequisites (follow, ask or ignore)? [ask] follow

Pronto agora é só fazer o commit para ficar permanente:

 cpan[2]> o conf commit

Agora quando você for instalar um módulo, não precisa mais ficar apertando o enter, é só mandar instalar e ir tomar um café.

Artimanha

Uma outra coias interessante, se você não lembrar o nome da variável, você pode usar regexp, é isso mesmo regexp:

 cpan[1]> o conf /po/

 $CPAN::Config options from '/etc/perl/CPAN/Config.pm':

     build_requires_install_policy [follow/yes]
     prerequisites_policy [follow]
     test_report        [0]
     trust_test_report_history [0]

Seja inteligente e leia o manual do CPAN: http://search.cpan.org/~andk/CPAN-1.9402/lib/CPAN.pm

AUTHOR

Daniel de Oliveira Mantovani <daniel.oliveira.mantovani@gmail.com> @mantovanidaniel

blog comments powered by Disqus