Top Banner
Perl heute This package has never done anything and never will do anything. If it changes, that's a bug. Please report it to [email protected] where I will proceed to ignore it.
195

Perl 5.20: Feature, Kultur, Module, Werkzeuge

Jul 17, 2015

Download

Software

lichtkind
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl heute

This package has never doneanything and never will doanything. If it changes,that's a bug.Please report it [email protected] where Iwill proceed to ignore it.

Page 2: Perl 5.20: Feature, Kultur, Module, Werkzeuge

4 Ansagen

Page 3: Perl 5.20: Feature, Kultur, Module, Werkzeuge

4 Ansagen

kein Quiz

Page 4: Perl 5.20: Feature, Kultur, Module, Werkzeuge

4 Ansagen

kein Quiz

Wählt Themenschwerpunkte

Page 5: Perl 5.20: Feature, Kultur, Module, Werkzeuge

4 Ansagen

kein Quiz

Wählt Themenschwerpunkte

Fragen wenn Überschrift

Page 6: Perl 5.20: Feature, Kultur, Module, Werkzeuge

4 Ansagen

kein Quiz

Wählt Themenschwerpunkte

Fragen wenn Überschrift

Folien abrufbar:

Page 7: Perl 5.20: Feature, Kultur, Module, Werkzeuge

lichtkind.de

Page 8: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Benutzer lichtkind

Page 9: Perl 5.20: Feature, Kultur, Module, Werkzeuge

De Perl Tut

Page 10: Perl 5.20: Feature, Kultur, Module, Werkzeuge

de.perl.org wiki

Page 11: Perl 5.20: Feature, Kultur, Module, Werkzeuge

de.perl.org

Page 12: Perl 5.20: Feature, Kultur, Module, Werkzeuge

CPAN: lichtkind

Page 13: Perl 5.20: Feature, Kultur, Module, Werkzeuge

de.perl.org

Page 14: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

Page 15: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Vortrag =

heise.de Artikel+ Modern Perl Buch+ Perl Weekly ???

Page 16: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 2014

Page 17: Perl 5.20: Feature, Kultur, Module, Werkzeuge
Page 18: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

auf Android +WinCE

kompilierbar

Page 19: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20CGI.pm,

Module::Build,encoding.pm,

verlassen den Kern

Page 20: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

Neue Optimierungen

Schnell (CoW,..)

Page 21: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

kleine, wunderbareFixes und Features

Page 22: Perl 5.20: Feature, Kultur, Module, Werkzeuge

März 2010

Page 23: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Dieser Vortrag:

große neueFeatures

Page 24: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Dieser Vortrag:

Entwicklungs-prozess

Sprachdesign

Page 25: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Dieser Vortrag:

Sprachdesign byCommunity

Page 26: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Ablauf:

Perl 5.10 – 5.22Perl 5.20

Perl ModulePerl Werkzeuge

Perl 6

Page 27: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Gemeinsamkeit:

Perl Perl

Perl Perl

Perl

Page 28: Perl 5.20: Feature, Kultur, Module, Werkzeuge
Page 29: Perl 5.20: Feature, Kultur, Module, Werkzeuge
Page 30: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl

Page 31: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl

Page 32: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl

Page 33: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl

,

Page 34: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl OO

Page 35: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl

Page 36: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl heute

Page 37: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl OO

Page 38: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Grüße aus den 80'ern

Page 39: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.14

Page 40: Perl 5.20: Feature, Kultur, Module, Werkzeuge
Page 41: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 2000Risiken

Handarbeit

Page 42: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 2000Risiken

Handarbeit

klare,einfachedefaults nicht überall

Page 43: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Philosophie

Was ist Perl?

Page 44: Perl 5.20: Feature, Kultur, Module, Werkzeuge
Page 45: Perl 5.20: Feature, Kultur, Module, Werkzeuge

TIMTOWTDI

Mächtigkeit oderEinfachheit oder …

ist wählbar

Page 46: Perl 5.20: Feature, Kultur, Module, Werkzeuge

TIMTOWTDI

Deine Entscheidungwird geachtet

Page 47: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl

Programmiersprachefür erwachsene

Menschen

Page 48: Perl 5.20: Feature, Kultur, Module, Werkzeuge

TIMTOWTDI

Mächtigkeit oder Einfachheit oder …

ist wählbar

Page 49: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 2000Risiken

Handarbeit

klare,einfachedefaults nicht überall

Page 50: Perl 5.20: Feature, Kultur, Module, Werkzeuge
Page 51: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl

in dubio proprogrammator

Page 52: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 6

Page 53: Perl 5.20: Feature, Kultur, Module, Werkzeuge

TIMTOWTDI

Mächtigkeit oderEinfachheit oder …

erreichbar

Page 54: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 6

“... to torture theimplementer on

behalf of the user.”

Page 55: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 6

Page 56: Perl 5.20: Feature, Kultur, Module, Werkzeuge
Page 57: Perl 5.20: Feature, Kultur, Module, Werkzeuge

All VM Belong To Us

Page 58: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl Kultur

Page 59: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2005

Page 60: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2007

Page 61: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2007

Perl 5.10

Page 62: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2007print ”$var\n”;say $var;

# viele Neuerungen, git# neue Regex Engine

Page 63: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2007use feature 'say'; # einesuse feature qw/.../; # mehr

# lexikalische Pragma# viele Neuerungen# neue Regex Engine

Page 64: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2007use feature 'say'; # einesuse feature qw/.../; # mehruse v5.10; # alle# perl -E# viele Neuerungen# neue Regex Engine

Page 65: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2007use feature 'switch';

given ($var) { # setzt $_ when (/^abc/) { … } when ([1..5]) { … } default { ... }}

Page 66: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2010

use strict; # implizituse v5.12; # alle

# jährliche releases# jesse vincent (p6 manag.)

Page 67: Perl 5.20: Feature, Kultur, Module, Werkzeuge

ACME

use strict;

Acme::Code::Police;

Page 68: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2002

use strict;

Acme::Code::FreedomFighter;

Page 69: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2010

use strict; # implizituse v5.12; # alle

# given / when geändert#

Page 70: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2011

use v5.14;

# Unicode 6, IPv6,# Multithread

Page 71: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2012

use v5.16; # feature v. 5.16use v5.14; # feature v. 5.14

# downgradable

Page 72: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2013no warnings "experimental::switch";use feature "switch";use v5.18;# perldoc perlexperiment# manche feature sind# experimental

Page 73: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2014

use experimental "switch";use v5.20;

# perldoc perlexperiment# Syntax::Construct

Page 74: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2014

use v5.20;

use feature qw/say stateswitch unicode_strings unicode_evalevalbytes current_sub fc/;

Page 75: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2015

use v5.22;

# was kommt im Mai ?

Page 76: Perl 5.20: Feature, Kultur, Module, Werkzeuge

2015use v5.22;# logische operatoren (p6)# graph. & wortgrenzen (re)# use strict für re# refaliases, UTF 7# <<>> double diamond op

Page 77: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

use v5.20;

use latest; use any::feature;

Page 78: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

Installierbare Module !!!

use latest; use any::feature;

Page 79: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

Page 80: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

use v5.20; vsuse v5.16;

Page 81: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;

Page 82: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;no warnings "switch";

Page 83: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;no warnings "experimental::smartmatch";

Page 84: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;no warnings "experimental::lexical_topic";

my $_ -----> local $_

Page 85: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;no warnings "experimental::regex_sets";

Page 86: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;no warnings "experimental::regex_sets";

! & | + - ^

Page 87: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;no warnings "experimental::regex_sets";

/(?[ ( \p{Thai} + \p{Lao} ) & \p{Digit} ])/

Page 88: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;no warnings "experimental::lexical_subs";

Page 89: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.18use v5.18;no warnings "experimental::lexical_subs";my sub { … }our sub { … }state sub { … }

Page 90: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

use v5.20;

Page 91: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

use v5.20;use feature 'postderef';

Page 92: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

use v5.20;use feature 'postderef';no warnings "experimental::postderef";

Page 93: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl 5.20

use v5.20;use feature 'postderef';no warnings "experimental::postderef";

use experimental 'postderef';

Page 94: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Pair Slices

Page 95: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Array/S. Kontextmy @array = ('d' .. 'f');say @array; # alle Werte eines Array : d e fsay @array[0,1]; # Teilarray mit zwei Werten : d esay $array[2]; # ein Wert aus gleichen Var.: f

Page 96: Perl 5.20: Feature, Kultur, Module, Werkzeuge

A./Skalar Kontextmy @array = ('d' .. 'f');say @array; # alle Werte eines Array : d e fsay @array[0,1]; # Teilarray mit zwei Werten : d esay $array[2]; # ein Wert aus gleichen Var.: f

my %hash = (a => 1, b => 2, c => 3 );say %hash; # alle Schlüssel & Werte: a 1 b 2 c 3say @hash{'a','b'}; # Werten zweier Schlüssel: 1 2say $hash{'c'}; # Wert des Schlüssels: 3

Page 97: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Pair Slicesmy @array = ('d' .. 'f');my %hash = (a => 1, b => 2, c => 3 );

say %array[0,1]; # im Wechsel Index/Wert: 0 d 1 esay %hash{'a','b'}; # Schlüssel/Wert: a 1 b 2

Page 98: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Pair Slicesmy @array = ('d' .. 'f');my %hash = (a => 1, b => 2, c => 3 );

say %array[0,1]; # im Wechsel Index/Wert: 0 d 1 esay %hash{'a','b'}; # Schlüssel/Wert: a 1 b 2

Perl 6:say @array[0,1] :p; # Ausgabe: 0 => "d" 1 => "e"say %hash<'a','b'> :p; # Ausgabe: "a" => 1 "b" => 2

Page 99: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Pair Slices on Refmy $arrayref = ['d' .. 'f'];my $hashref = {a => 1, b => 2, c => 3 };

say %$arrayref[0,1]; # Index/Wert: 0 d 1 esay %$hashref{'a','b'}; # Schlüssel/Wert: a 1 b 2

Page 100: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Hashes in Perl 5

Page 101: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref.

Page 102: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref.

push $hash{'key'}, 'value';

Page 103: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref.

push $hash{'key'}, 'value';

push @{$hash{'key'}}, 'value';

Page 104: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref.

stört den Lesefluss

push @{$hash{'key'}}, 'value';

Page 105: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref.

$array[2][7]; # ein Wert, wie bekannt$array[2]->[7]; # dasselbe

Page 106: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref.

$array[2][7]; # ein Wert, wie bekannt$array[2]->[7]; # dasselbe$array[2]->@[7]; # kein Vorteil soweit

Page 107: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref.

$array[2][7]; # ein Wert, wie bekannt$array[2]->[7]; # dasselbe$array[2]->@[7]; # kein Vorteil soweit

$array[2]->@[5,6]; # 2 Werte, gleichbedeutend mit:@{$array[2]}[5,6]; # ging bisher nur so$array[2]->%[5,6]; # auch Pair Slices möglich$hash{'a'}->%{'g','e'}; # bei verschachtelten Hashes

Page 108: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref.

$array[2][7]; # ein Wert, wie bekannt$array[2]->[7]; # dasselbe$array[2]->@[7]; # kein Vorteil soweit

$array[2]->@[5,6]; # 2 Werte, gleichbedeutend mit:@{$array[2]}[5,6]; # ging bisher nur so$array[2]->%[5,6]; # auch Pair Slices möglich$hash{'a'}->%{'g','e'}; # bei verschachtelten Hashes

$array[2]->@* # gesamter Unterarrayinhalt$array[2]->$#* # Anzahl der Elemente

Page 109: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref. $array[2][7]; # ein Wert, wie bekannt$array[2]->[7]; # dasselbe$array[2]->@[7]; # kein Vorteil soweit

$array[2]->@[5,6]; # 2 Werte, gleichbedeutend mit:@{$array[2]}[5,6]; # ging bisher nur so$array[2]->%[5,6]; # auch Pair Slices möglich$hash{'a'}->%{'g','e'}; # bei verschachtelten Hashes

$array[2]->@* # gesamter Unterarrayinhalt$array[2]->$#* # Anzahl der Elemente$array[2]->*{ARRAY} # GLOB / symbol Tabelle

Page 110: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Postfix-Deref. $array[2][7]; # ein Wert, wie bekannt$array[2]->[7]; # dasselbe$array[2]->@[7]; # kein Vorteil soweit

$array[2]->@[5,6]; # 2 Werte, gleichbedeutend mit:@{$array[2]}[5,6]; # ging bisher nur so$array[2]->%[5,6]; # auch Pair Slices möglich$hash{'a'}->%{'g','e'}; # bei verschachtelten Hashes

$array[2]->@* # gesamter Unterarrayinhalt$array[2]->$#* # Anzahl der Elemente$array[2]->*{ARRAY} # GLOB / symbol Tabelle“$hash{a}->%{g,e}” # sogar interpoliert

Page 111: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Sprachdesign++:

Lesefluss: von links nach rechts

konsistent mit allem Bisherigen

keine Ausnahmen

1 neue Syntaxregel

Page 112: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

use experimental 'signatures';

sub sag ($subjekt, $praedikat, $objekt) { say "$subjekt $praedikat $objekt.";}

Page 113: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

Page 114: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

Page 115: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

use experimental 'signatures';

sub sag ($subjekt, $praedikat, $objekt) { say "$subjekt $praedikat $objekt.";}

Page 116: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

sub sag { my($subjekt, $praedikat, $objekt)=@_; say "$subjekt $praedikat $objekt.";}

Page 117: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturenuse experimental 'signatures';

sub sag ($subjekt, $praedikat, $objekt) { my ($sub, $praed, $obj) = @_; say "$subjekt $praedikat $objekt."; say "$sub $praed $obj.";}

Page 118: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

sag ( "Du" );sag ( "Du", "hast" );sag ( "Du", "hast", "mich" );sag ( "Du", "hast", "mich", "gefragt" );

Page 119: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Error

sag ( "Du" );sag ( "Du", "hast" );sag ( "Du", "hast", "mich" );sag ( "Du", "hast", "mich", "gefragt" );

Page 120: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Prototypen

sub sag ($$;$) { say "$_[0] $_[1] $_[2].";}

Page 121: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Prototypen

use experimental 'signatures';sub :prototype($$;$) ($subjekt, $praedikat, $objekt) { say "$subjekt $praedikat $objekt.";}

Page 122: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

use experimental 'signatures';

sub sag ($, $praedikat, $objekt) { say "Ich $praedikat $objekt.";}

Page 123: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Prototyp Attribut

use experimental 'signatures';sub :prototype($$;$) ($subjekt, $praedikat, $objekt) { say "$subjekt $praedikat $objekt.";}

Page 124: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

use experimental 'signatures';

sub sag ($subjekt, $ =, $objekt) { say "$subjekt vermutet $objekt.";}

Page 125: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

use experimental 'signatures';

sub sag ($subjekt, $praedikat, $ =) { say "$subjekt $praedikat Snowden.";}

Page 126: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Signaturen

use experimental 'signatures';

sub sag ($subjekt, $praedikat, @) { say "$subjekt $praedikat Snowden.";}

Page 127: Perl 5.20: Feature, Kultur, Module, Werkzeuge

“Slurpy” Array

use experimental 'signatures';

sub sag($subjekt, $praedikat,@objekte){ say "$subjekt $praedikat @objekte.";}

Page 128: Perl 5.20: Feature, Kultur, Module, Werkzeuge

“Slurpy” Hash

use experimental 'signatures';

sub sag ($subjekt, %praed_objekt) { say $subjekt, " ", %praed_objekt,".";}

Page 129: Perl 5.20: Feature, Kultur, Module, Werkzeuge

ModuleTask::Kensho,M[o[o[se|ps]]],

Type::Tiny, Try::Tiny,Future, autodie,

Data::Printer, Sereal,IO::All

Page 130: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Task::Kensho

Erleuchtung

Page 131: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Moose

Page 132: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Moose

kompatible Objekte

Page 133: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mooseauto getter/setter, delegation,defaultwerte, trigger, lazy eval,signaturen, typprüfung,rollen, eigene subtypen,method mod, inside outdelegation,wesentlich mehr Komfort

Page 134: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mooseauto getter/setter, delegation,defaultwerte, trigger, lazy eval,signaturen, typprüfung,rollen, eigene subtypen,method mod, inside outdelegation,wesentlich mehr Komfort

Page 135: Perl 5.20: Feature, Kultur, Module, Werkzeuge

MooseX

Class::MOP

Page 136: Perl 5.20: Feature, Kultur, Module, Werkzeuge

MooseX::Declare

auto: getter/setter

Page 137: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Moops

auto: getter/setter

Page 138: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mouse

Elche ohne Geweih?

Page 139: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mouse

Elche ohne Geweih?

Nein nur schneller dank XS

Page 140: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Moo

Page 141: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Moo

minimale OO in Perl

schnell, klein, praktisch

kompatibel wie möglich

Page 142: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mopackage Mo;$VERSION=0.39;

no warnings;my$M=__PACKAGE__.'::';*{$M.Object::new}=sub{my$c=shift;my$s=bless{@_},$c;my%n=%{$c.::.':E'};map{$s->{$_}=$n{$_}->()if!exists$s->{$_}}keys%n;$s};*{$M.import}=sub{import warnings;$^H|=1538;my($P,%e,%o)=caller.'::';shift;eval"no Mo::$_",&{$M.$_.::e}($P,\%e,\%o,\@_)for@_;return if$e{M};%e=(extends,sub{eval"no$_[0]()";@{$P.ISA}=$_[0]},has,sub{my$n=shift;my$m=sub{$#_?$_[0]{$n}=$_[1]:$_[0]{$n}};@_=(default,@_)if!($#_%2);$m=$o{$_}->($m,$n,@_)for sort keys%o;*{$P.$n}=$m},%e,);*{$P.$_}=$e{$_}for keys%e;@{$P.ISA}=$M.Object};

Page 143: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mpackage M;$VERSION=1;

Page 144: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mpackage M;$VERSION=1;

Nothing::Tiny

Page 145: Perl 5.20: Feature, Kultur, Module, Werkzeuge

M Dokumentation

This package has never doneanything and never will doanything. If it changes,that's a bug.Please report it [email protected] where I willproceed to ignore it.

Page 146: Perl 5.20: Feature, Kultur, Module, Werkzeuge

MST gewonnen ?

Page 147: Perl 5.20: Feature, Kultur, Module, Werkzeuge

mop redux

Perl OO in XS/C

5.24 ??

Page 148: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Type::Tiny

Page 149: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Try::Tiny

try / catch / finally

Page 150: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Future

Versprechen (promise)

Sag mir wie weit du bist. /Ergebnis

Page 151: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Promise

Versprechen (promise)

node.js API

Page 152: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Future

Logik utils

Python twisted: deferredJava ?

Page 153: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Future

Paul Evans

IO::Async

Page 154: Perl 5.20: Feature, Kultur, Module, Werkzeuge

EV / Coro / AE

Marc Lehmann

Page 155: Perl 5.20: Feature, Kultur, Module, Werkzeuge

POE

1998Rocco Caputo

Page 156: Perl 5.20: Feature, Kultur, Module, Werkzeuge

autodie

use autodie;

Page 157: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Data::Printer

Page 158: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Data::Printer

Datenstrukturenauch Objekte

Formatiert in Farbe

Page 159: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Sereal

Page 160: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Sereal

Daten auf Platte und zurück

schnell und kompakt

Page 161: Perl 5.20: Feature, Kultur, Module, Werkzeuge

IO::All

Page 162: Perl 5.20: Feature, Kultur, Module, Werkzeuge

IO::All$inhalt < io 'datei.txt';$inhalt = io 'datei.txt';$inhalt = io->file('..')->slurp;@inhalte = io->dir('..')->all;$io = io('my/dir/'); # %$io

Page 163: Perl 5.20: Feature, Kultur, Module, Werkzeuge

IO::All

say $_->getline for io->dir('dir')->all_files;

Page 164: Perl 5.20: Feature, Kultur, Module, Werkzeuge

IO::All

say $_->getline for io->dir('dir')->all_files;

1. Zeilen der Dateien

Page 165: Perl 5.20: Feature, Kultur, Module, Werkzeuge

IO::All

Dateien, Verzeichnisse,Iteratoren, Rückwärts, stat,STDIN, STDOUT, Pipes,

Sockets, DBM

Page 166: Perl 5.20: Feature, Kultur, Module, Werkzeuge

IO::All

Dateien, Verzeichnisse,Iteratoren, Rückwärts, stat,STDIN, STDOUT, Pipes,

Sockets, DBMPlugins: Mail, LWP

Page 167: Perl 5.20: Feature, Kultur, Module, Werkzeuge

IO::Alluse IO::ALL;

my $socket = io(':80')->fork->accept;$socket->print($_) while <DATA>;$socket->close;

__DATA__<!DOCTYPE html>...

Page 168: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mojolicious

Dancer ?

Page 169: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Werkzeuge

MetaCPANcpanminus, perlbrew,

carton, Dist::Zilla,Perl::Critic, NYTProf

rxrx, ack, asciio

Page 170: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Werkzeuge

Page 171: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Werkzeuge

Page 172: Perl 5.20: Feature, Kultur, Module, Werkzeuge

App::cpanminus

Page 173: Perl 5.20: Feature, Kultur, Module, Werkzeuge

App::cpanminus

installiert Module

keine Konfiguration

Page 174: Perl 5.20: Feature, Kultur, Module, Werkzeuge

App::cpanminus

curl -L https://cpanmin.us |perl - --sudo

App::cpanminus

Page 175: Perl 5.20: Feature, Kultur, Module, Werkzeuge

App::perlbrew

Page 176: Perl 5.20: Feature, Kultur, Module, Werkzeuge

App::perlbrew

lokales Perl

einfacher Wechsel

[Massen]test

Page 177: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl::Build

local::lib

Page 178: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Object::Remote

Page 179: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Carton

Dependency Manager

Page 180: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Carton

FatPacker

Cava

PAR

Page 181: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Dist::Zilla

GODZILLAOVERKILL!!

Page 182: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Perl::Critic

Prüft Quellcode

5 Brutalitätsstufen

Basierend auf PBP + C.C.

Eigene Regeln

projektbezogene Regelweke

Page 183: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Damian Conway

Page 184: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Devel::NYTProf

intelligenter Profiler

schnell, genau

HTML - Reports

Flammenansicht

Page 185: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Devel::NYTProf

Page 186: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Devel::NYTProf

Page 187: Perl 5.20: Feature, Kultur, Module, Werkzeuge

rxrx

Regex REPL und Debugger

vis. Nav. ASCII, aber bunt

versteht gesamte Perl rx

Damian Conway(Parse::RecDescent)

Page 188: Perl 5.20: Feature, Kultur, Module, Werkzeuge

rxrx

Page 189: Perl 5.20: Feature, Kultur, Module, Werkzeuge

rxrx

Page 190: Perl 5.20: Feature, Kultur, Module, Werkzeuge

App::Ack (ack)

grep für Programmierer

Perl Regex

Ignoriert unwichtiges

file & dir selection

Page 191: Perl 5.20: Feature, Kultur, Module, Werkzeuge

App::Asciio

Diagramme und Graphiken

in ASCII

auf Knopfdruck

aus der ASCII - App

Page 192: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Mehr Info:

[de.]perl.org

perl-magazin.de

perl-tutorial.org

perl.com perlsphere.net

Page 193: Perl 5.20: Feature, Kultur, Module, Werkzeuge

perl-tutorial.org

Page 194: Perl 5.20: Feature, Kultur, Module, Werkzeuge

6. - 8. Mai DPW

Dresden ist schön

Page 195: Perl 5.20: Feature, Kultur, Module, Werkzeuge

Danke