Slide 1

Slide 1 text

Perl Workshop 2013 (Luga/#lit2013) Montag, 25. März 13

Slide 2

Slide 2 text

Ulrich Habel Toolchain Builder Perl Evangelist SysAdmin/Devops @rabenfeder [email protected] http:/ /www.pkgbox.de Foto: Mark Keating Montag, 25. März 13

Slide 3

Slide 3 text

"Life is a data structure" - sometimes it's hard to build the AST - myself, Nov. 2012 Montag, 25. März 13

Slide 4

Slide 4 text

Agenda Crashkurs Perl / Setup der Boxen Lebenswertes Perl (local::lib, perlbrew, cpanm) Wunderkinder (scalar/Data::Dumper) Kommandozeilen Affären (App::Cmd) Rule em all! (Dist::Zilla) App::Cmd - reloaded Du und das Objekt (Moo) Objekt, Alter? Objekt! (Moo, Moo::Role) Montag, 25. März 13

Slide 5

Slide 5 text

Tools of trade local::lib - Module "lokal" verwenden perlbrew - Erzeugen eines benutzbaren Perls cpanm - Installation von Modulen, Erweiterungen Dist::Zilla - Module sinnvoll erstellen Montag, 25. März 13

Slide 6

Slide 6 text

local::lib Installiert Perl Module im Home Directory Benutzbar für "extlib" bundles $ perl Makefile.PL --bootstrap $ make test && make install $ echo 'eval $(perl -I$HOME/perl5/lib/perl5 \ -Mlocal::lib)' >>~/.bashrc Montag, 25. März 13

Slide 7

Slide 7 text

perlbrew Installation denkbar einfach Erfordert perl-5.8.8, make, gcc $ curl -kL http://install.perlbrew.pl | bash Montag, 25. März 13

Slide 8

Slide 8 text

perlbrew - commons $ perlbrew install 5.16.3 $ perlbrew switch 5.16.3 $ perlbrew available $ perlbrew install-cpanm $ perlbrew install-ack $ export PERLBREW_ROOT=/opt/perl5 Montag, 25. März 13

Slide 9

Slide 9 text

cpanm Einfache Installation "Online" Lookup Deutlich speicherfreundlicher als CPAN.pm Montag, 25. März 13

Slide 10

Slide 10 text

cpanm $ curl -LO http://xrl.us/cpanm && \ chmod +x cpanm Req: gcc, make, tar, perl >= 5.88, Module::Build (core >= 5.10.1) Montag, 25. März 13

Slide 11

Slide 11 text

cpanm - commons $ cpanm Dist::Zilla $ cpanm --installdeps . $ cpanm -L extlib Dist::Zilla # uncommon - useful $ cpanm --mirror-only Montag, 25. März 13

Slide 12

Slide 12 text

Dist::Zilla Erstmalig sehr aufwendige Installation Nur in der Entwicklungsumgebung erforderlich Es macht "alles" aka boilerplating Montag, 25. März 13

Slide 13

Slide 13 text

dzil - commons $ dzil setup $ dzil new Luga::Talk (dist.ini - lib/...) Montag, 25. März 13

Slide 14

Slide 14 text

dzil - rule em Pod documentation Makefile.PL Generierung Plugins Montag, 25. März 13

Slide 15

Slide 15 text

Fragen? Fragen! Ulrich Habel ([email protected]) Montag, 25. März 13