the modern perl toolchain
DESCRIPTION
Tema: The modern perl toolchainCurso de Perl avanzado Barcelona.pm 2012TRANSCRIPT
The Modern
Perl Toolchain
Cómo conseguir Perl
Hay gente que nunca ha instalado Perl– Viene preinstalado en casi todos los
sabores de *N?X
El mundo *N?X tradicional
Paquetes
Compilado a mano
Paquetes
CPAN
A mano
Perl paquetes + Módulos paquetes
PROS• Buena estabilidad• Instalación fácil (e
integrada con el SO)
CONS• Perls antiguos• Módulos antiguos• Alguna distribución
gamberra
Perl paquetes + Modulos CPAN
PROS• Bleeding edge• Instalación fácil
CONS• Perls antiguos• Alguna distribución
gamberra• Peligro de cargarte
módulos del sistema
Perl paquetes + CPAN a mano
PROS• Bleeding edge
CONS• Perls antiguos• Alguna distribución
gamberra• Peligro de cargarte
módulos del sistema• A mano!!!
Modern
Paquetes
Perlbrew
Compilado a mano
Paquetes
local::lib
CPAN
A mano
Perlbrew + local::lib
PROS• Bleeding edge• Personalizar
compilación• Entorno aislado
CONS• Entornos no
reproducibles
Windows
• ActivePerl– PPM -> Paquetes
precompilados de modulos de CPAN
– No CPAN
• Strawberry Perl– CPAN
Perlbrew
perlbrew.pl
admin-free perl installation
management tool
Perlbrew - instalación
monger@onion:~$ wget --no-check-certificate -O - http://install.perlbrew.pl | bash
monger@onion:~$ source ~/perl5/perlbrew/etc/bashrc
Perlbrew - uso
monger@onion:~$ perlbrew available perl-5.15.8 perl-5.14.2 perl-5.12.4 perl-5.10.1 perl-5.8.9 perl-5.6.2 perl5.005_04 perl5.004_05 perl5.003_07
Perlbrew – instalar un perl
monger@onion:~$ perlbrew install perl-5.14.2monger@onion:~$ perlbrew available perl-5.15.8i perl-5.14.2 perl-5.12.4 perl-5.10.1 perl-5.8.9 perl-5.6.2 perl5.005_04 perl5.004_05 perl5.003_07
Perlbrew – instalar un perl
monger@onion:~$ perlbrew list perl-5.14.2monger@onion:~$ perlbrew switch perl-5.14.2monger@onion:~$ perlbrew list* perl-5.14.2monger@onion:~$ perlbrew use perl-5.14.2
Perlbrew – instalar un perl
#!/usr/bin/perl
#!/usr/bin/env perl
Perlbrew – local::lib
monger@onion:~$ perlbrew lib perl-5.14.2@curso lib 'perl-5.14.2@curso' is created.monger@onion:~$ perlbrew list* perl-5.14.2 perl-5.14.2@cursomonger@onion:~$ perlbrew use perl-5.14.2@cursomonger@onion:~$ perlbrew list perl-5.14.2* perl-5.14.2@curso
Dist::Zilla
monger@onion:~$ cpanm Dist::Zilla …monger@onion:~$ dzill setupmonger@onion:~$ dzill new App::Cursomonger@onion:~$ dzill clean
Y ya se puede empezar!
Dist::Zilla
Opciones útiles:
monger@onion:~$ dzill run bash
monger@onion:~$ dzill test
monger@onion:~$ dzil authordeps|cpanm
Cómo conseguir módulos
Ya tenemos Perl instalado. Y ahora, ¿cómo conseguimos los módulos que necesitamos?
Cómo conseguir módulos
monger@onion:~$ perlbrew install-cpanmmonger@onion:~$ cpanm Date::Holidays::CA_ES
Herramientas de la comunidad
CPAN: Comprehensive Perl Archive Network
cpan.orgsearch.cpan.orgmetacpan.org
CPAN: Comprehensive Perl Archive Network
104.551 módulos de Perlen
24.391 distribucionesescritos por
9.569 autoresy replicado en
268 servidores
CPAN Testers
cpantesters.org
Bugsrt.cpan.org
¿Cómo contribuir?
Publicando módulos (http://pause.perl.org)
Participando en perlmonks.orgContribuyendo a módulos existentes
Reportando (y arreglando) bugsRealizando tests
Participando en la lista de mongers local…
Módulos interesantes - Core
CGIData::Dumper
File::*FindBin
Getopt::LongNet::*
Módulos interesantes
Template::ToolkitData::PrinterNet::Server
CatalystMojoliciousDBIx::Class
PlackLWP
WWW::Mechanize
Hemos dicho que hay casi 25.000 distribuciones?
Ejercicios
1. Instalar un perl 5.14.2 con perlbrew1. Hacer un script que diga “Hello World!” y el
intérprete de perl que lo ha ejecutado
2. Instalar Mojolicious en un local::lib llamado mojo
3. Instalar Catalyst, DBI, DBIx::Class y DBD::Sqlite en un local::lib llamado catalyst
4. Crear un nuevo modulo con Dist::Zilla1. Instalar el modulo con cpanm