86
Perl Perl die die Taschenkettensäge Taschenkettensäge unter den unter den Programmiersprachen Programmiersprachen Vortrag von Brigitte Jellinek, 18C3 19C3 if 2003

Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Embed Size (px)

DESCRIPTION

Vorstellung der Programmiersprache Perl auf drei Ebenen: für Programmier-Anfänger, für Fortgechrittene und für Profis. inkl. Buchtipps zu Perl. Ein Vortrag den ich ursprünglich am Chaos Communication Congress 2000 in Berlin gehalten habe, hier in der Version von 2003.

Citation preview

Page 1: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

PerlPerldie die

TaschenkettensägeTaschenkettensäge unter denunter den

ProgrammiersprachenProgrammiersprachen

Vortrag von Brigitte Jellinek, 18C319C3if 2003

Page 2: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

InhaltInhalt

• Perl für Anfängerinnen

Page 3: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

InhaltInhalt

• Perl für Anfängerinnen• Perl für Fortgeschrittene

Page 4: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

InhaltInhalt

• Perl für Anfängerinnen• Perl für Fortgeschrittene

– und Umsteiger

Page 5: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

InhaltInhalt

• Perl für Anfängerinnen• Perl für Fortgeschrittene

– und Umsteiger

• Perl für Profis

Page 6: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

InhaltInhalt

• Perl für Anfängerinnen• Perl für Fortgeschrittene

– und Umsteiger

• Perl für Profis• Die Perl Community

Page 7: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

InhaltInhalt

• Perl für Anfängerinnen• Perl für Fortgeschrittene• Perl für Profis• Die Perl Community• Perl Zukunft

Page 8: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

InhaltInhalt

• Perl für Anfängerinnen• Perl für Fortgeschrittene• Perl für Profis• Die Perl Community• Perl Zukunft• Buchtipps

Page 9: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für AnfängerPerl für Anfänger

x Gründe warum man Perl als erste Programmiersprache lernen sollte

Page 10: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für AnfängerPerl für Anfänger

Wer programmieren lernt, hat ein Recht auf Spass

Page 11: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Mehr Spass durch Skript-Mehr Spass durch Skript-SprachenSprachen

• easy things should be easy– keine sinnlose (oo-)Bürokratie

print "Hallo Welt, wie gehts?";

Page 12: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Mehr Spass durch Skript-Mehr Spass durch Skript-SprachenSprachen

• interpretiert – schnelle Rückmeldung

Page 13: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Mehr Spass durch Skript-Mehr Spass durch Skript-SprachenSprachen

• wenige versch. Datentypen– Zahl, Zeichenkette, Wahrheitswert?

alles Skalar

$a = 42;print "Variable a ist $a \n";

$a = "zweiundvierzig";print "Variable a ist $a \n";

$a = 13.7603;print "Variable a ist $a \n";

Page 14: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Mehr Spass durch Skript-Mehr Spass durch Skript-SprachenSprachen

Skript-Sprachen:– Perl, PHP, VBScript, Python, Ruby,

awk, ... <hier könnte ihre Lieblingssprache stehen>

„richtige“ Programmiersprachen– C, C++, Java, Pascal, Ada, ...

<hier könnte ihre Lieblingssprache stehen>

Page 15: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für AnfängerPerl für Anfänger

Wer programmieren lernt, hat ein Recht auf

coole Beispiele

Page 16: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

cool? uncool?cool? uncool?

• uncool– n! berechnen– DOS Programm– ewig

programmieren, um ein Fenster zu erzeugen

• cool– bunt– interaktiv– so gut wie die

Profis

• heute: Web

Page 17: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Mehr Spass durch Mehr Spass durch Web-ProgrammierungWeb-Programmierung

• Counter• Gästebuch• Postkarte• E-Mail schicken• Fotoalbum• Abstimmung

Page 18: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Web-ProgrammierungWeb-Programmierung

• HTML• Warnung vor Javascript• Webspace mit ...• Perl, PHP oder Visual Basic

Page 19: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für AnfängerPerl für Anfänger

Wer programmieren lernt, sollte dafür nicht ein Vermögen

ausgeben müssen

Page 20: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl ist gratisPerl ist gratis

• Larry Wall + die Gefährten

Page 21: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl ist gratis + überallPerl ist gratis + überall

• auf allen UNIXen, Mac OS X– which perl

• Windows: – ActiveState (mit vielen modulen)– XAMPP (mit apache,mysql,php)

• MacPerl

• Larry Wall + die Gefährten• Artistic License

Page 22: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für AnfängerPerl für Anfänger

• 3 Gründe warum man Perl als erste Programmiersprache lernen sollte– Spass weil Skriptsprache– Coole Beispiele mit CGI– Gratis und überall

Page 23: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für FortgeschrittenePerl für Fortgeschrittene

x Gründe, warum Leute die schon programmieren können Perl lernen sollten

Page 24: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Weniger Aufwand, Weniger Aufwand, mehr Wirkungmehr Wirkung

Lines of Code pro Function

Point

Lines of Code pro Zeile Perl

Basic Assembly 575 11,5Macro Assembly 400 8,0C 225 4,5Cobol 74 (Cobol I) 220 4,4FORTRAN 210 4,2Cobol 85 (Cobol II) 175 3,5Pascal 160 3,2C++ 80 1,6Java 80 1,6Oracle 60 1,2

Perl 50 1,0JavaScript 50 1,0Shell Script 50 1,0

veraltet, aber trotzdem beeindruckend

Page 25: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

kenn ich schonkenn ich schon

• Syntax: C, C++, Java, C#

$a[ 0 ] = 42;$a[ 1 ] = "zweiundvierzig";$a[ 2 ] = 3.141;

for ($i=0; $i < 3; $i++ ) {

print "$i: Wert $a[ $i ]\n";

}

Page 26: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

kenn ich schonkenn ich schon

• Patterns: vi, grep, egrep, sed

$text = "Voldemort besitzt den zweiten Zauberstab, der eine Phönixfeder enthält.";

$text =~ s/Voldemort/Du weisst schon wer/g;

print $text;

Page 27: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

kenn ich schonkenn ich schon

• Assoziative Arrays: awk

$ring{'Gandalf'} = "Narya";$ring{'Galadriel'} = "Nenya";$ring{'Elrond'} = "Velia";$ring{'Frodo'} = "Ash Nazgh";

Page 28: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

kenn ich schonkenn ich schon

• Listen: Lisp

@a = ( 0, "eins", 2 ); # Liste zuweisen

$a[ 3 ] = "drei"; # über Index zuweisen

push( @a, "bier"); # hinten anfügen

push( @a, "fünf", 6); # auch mehrere Elemente

splice( @a, 4, 1, "VIER!" ); # in schweren Fällen: # in der Mitte ersetzen

print "@a";

Page 29: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

kenn ich schonkenn ich schon

• Dateien + Ordner: shell

Page 30: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Von x zu PerlVon x zu Perl

Page 31: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Von PASCAL zu PerlVon PASCAL zu Perl

BEGIN

END

BEGIN Pascal;END Pascal;

Page 32: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Von PASCAL zu PerlVon PASCAL zu Perl

{

}

BEGIN Pascal;END Pascal;

Page 33: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Von PASCAL zu PerlVon PASCAL zu Perl

• Syntax { } statt BEGIN END• nie wieder compilieren• Weniger Aufwand,

grössere Wirkung

BEGIN Pascal;END Pascal;

Page 34: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Von C zu PerlVon C zu Perl

• Schreibweise sehr ähnlich• weniger Stress mit Strings • endlich Plattformunabhängig• Variablen haben ein Sigil

$a @b %c

• Weniger Typen• C an Perl antackern

– XS oder Inline::C int main(int argc,

char * argv[]

Page 35: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Von C++/Java zu PerlVon C++/Java zu Perl

• weniger Bürokratie• nicht alles muss OO sein• Simple things should be simple,

complicated things should be possible

Page 36: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

public class HelloWorld

{

public static void main( String args[])

{

System.out.println(

"Hello World");

}

}

Page 37: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

print "Hello World";

Page 38: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Von Javascript zu PerlVon Javascript zu Perl

• zur Abwechslung:eine Sprache die funktioniert

• Variablen haben ein Sigil$a @b %c

• Typen gleich

Page 39: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Von PHP zu PerlVon PHP zu Perl

• gratuliere! – du bist schon fast daSyntax TypenSigil (~Änderung)

• grosse Projekte – mit Namespaces *

• viele Module– mit CPAN

• SysAdmin, DataMunging, Kommandozeile

Page 40: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

<?php

// gehört zu Foo

$a = 10;

$b = 20;

go();

// gehört zu Bar

$bar_a = 42;

$bar_b = 23;

bar_go();

?>

Page 41: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

package Foo;$a = 10;$b = 20;

go();

package Bar;$a = 42;$b = 23;go();

print $Foo::a;

print $Foo::b;

Foo::go();

Page 42: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Neu in Perl: HashNeu in Perl: Hash

• nicht was ihr denkt• „assoziatives Array“• Index nicht Integer sondern String

0 1 2 3Narya Nenya Vilya Ash Nazgh

0 1 2 3

0 1 2 3

Narya Nenya Vilya Ash Nazgh

Gandalf Galadriel Elrond Frodo

Page 43: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Neu in Perl: RegExpNeu in Perl: RegExp

• oder „pattern matching“

• Text Ersetzen• Muster in Text finden

• ein paar Sonderzeichenm/^Am Anfang war/ m/\d+ EURO/

Page 44: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Neu in Perl: RegExpNeu in Perl: RegExp

$text = "Voldemort besitzt den zweiten Zauberstab, der eine Phönixfeder enthält.";

print "Vorher: $text <br>\n";

$text =~ s/Voldemort/Du weisst schon wer/g;

print "Nachher: $text <br>\n";

if ( $text =~ m/Zauberstab/ ) {

print "Zauberstab gefunden!";

}

Page 45: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Module, Module, ..Module, Module, ..

• es gibt ziemlich viele Module• z.B.

– Webformulare auslesen mit CGI– Bilder malen mit GD– Webseiten runterladen mit LWP– Sachen rauslesen mit HTML::*– Datenbanken aller Art mit DBI

Page 46: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Module installierenModule installieren

• UNIX– mit cpan von CPAN– lädt vom Internet, kompiliert (falls

nötig), installiert

• Windows– mit ppm– lädt vom Internet

(vorkompiliert), installiert

Page 47: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für FortgeschrittenePerl für Fortgeschrittene

4 Gründe, warum Leute die schon programmieren können Perl lernen sollten– Ähnlich wie ....– Pattern Matching– Hashes– Viele Module

Page 48: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl AnwendungPerl Anwendung

(typische)

Page 49: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl Anwendung: Perl Anwendung: CGICGI

• Du sollst das Modul CGI verwenden

• Du sollst das Modul CGI verwenden

• Du sollst das Modul CGI verwenden

• Siehe http://perlwelt.horus.at/Beispiele/CGI/

Page 50: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl Anwendung: Perl Anwendung: System-System-AdministrationAdministration

• Dateien und Ordner@dateien = glob "*.zone"if ( -e ‘done‘ and -M ‘done‘ > 1) { .. }-X, chdir, chmod, chown, chroot, fcntl, glob, ioctl, link, lstat, mkdir, open, opendir, readlink,

rename, rmdir, stat, symlink, umask, unlink, utime

• UNIX (eingebaut)– chmod, chown, chroot, crypt, dbmclose, dbmopen, dump, endgrent, endhostent, endnetent, endprotoent,

endpwent, endservent, exec, fcntl, flock, fork, getgrent, getgrgid, gethostent, getlogin, getnetbyaddr, getnetbyname, getnetent, getppid, getprgp, getpriority, getprotobynumber, getprotoent, getpwent, getpwnam, getpwuid, getservbyport, getservent, getsockopt, glob, ioctl, kill, link, lstat, msgctl, msgget, msgrcv, msgsnd, open, pipe, readlink, rename, select, semctl, semget, semop, setgrent, sethostent, setnetent, setpgrp, setpriority, setprotoent, setpwent, setservent, setsockopt, shmctl, shmget, shmread, shmwrite, socket, socketpair, stat, symlink, syscall, sysopen, system, times, truncate, umask, unlink, utime,

wait, waitpid

• Win32 (Module) Net::LDAP– AuthenticateUser, ChangeNotify, Clipboard, Console, DBIODBC, Event, EventLog, File, FileSecurity, Internet,

IPC, Mutex, NetAdmin, NetResource, ODBC, OLE, Browser, Browser, Const, Enum, NEWS, NLS, TPJ, Variant, PerfLib, Pipe, Process, Registry, Semaphore, Service, Sound, TieRegistry

Page 51: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl Anwendung: Perl Anwendung: Data MungingData Munging

• umformatieren• Ziel: Text, HTML, SQL, XML,...• Quelle: jedes kranke Format• Werkzeuge

– Pattern Matching– binär: pack / unpack– Parse::RecDescent (yacc++)

Page 52: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für ProfisPerl für Profis

x Gründe, warum Profis an Perl Freude haben werden

Page 53: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

TMTOWTDITMTOWTDI

There‘s more than one way to do it

= Unglaubliche Flexibilität der Syntax

Page 54: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

TMTOWTDITMTOWTDI

print "hallo"; # funktion ohne klammerprint ("hallo"); # funktion mit klammer

# auch mehrere funktionen:

reverse sort keys %hash;

Page 55: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

TMTOWTDITMTOWTDI

print "ein Anf-z. \" in meinem string";

print 'ein Anf-z. " in meinem string';

print qq{zwei ' Anf-z. " in meinem string};print qq/zwei ' Anf-z. " in meinem string/;print qq|zwei ' Anf-z. " in meinem string|;

$text =~ m/gesucht/;

$text =~ m|gesucht|;$text =~ m=gesucht=;$text =~ m(gesucht);

Page 56: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Magie: Programme Magie: Programme werden immer kürzerwerden immer kürzer

• flexible Schreibweise• Kurzschreibweise• unsichtbare Variable

Page 57: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Magie: Programme werden Magie: Programme werden immer kürzerimmer kürzer

# Datei öffnen (mit Fehlerbehandlung)

$OK = open(HANDLE, "datei.txt");

if ( not $OK ) { die "Problem beim lesen der Datei: $!";}

Page 58: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Magie: Programme werden Magie: Programme werden immer kürzerimmer kürzer

# Datei öffnen (mit Fehlerbehandlung)

$OK = open(HANDLE, "datei.txt");

unless ( $OK ) { die "Problem beim lesen der Date: $!";}

unless ist if not

Page 59: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Magie: Programme werden Magie: Programme werden immer kürzerimmer kürzer

# Datei öffnen (mit Fehlerbehandlung)

$OK = open(HANDLE, "datei.txt");

die "Problem beim lesen der Date: $!" unless $OK;

Bedingung als "Nachsatz"

Page 60: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Magie: Programme werden Magie: Programme werden immer kürzerimmer kürzer

# Datei öffnen (mit Fehlerbehandlung)

open(HANDLE, "datei.txt") or die "Problem beim lesen der Date: $!"

Wie im Deutschen: friss oder stirb!

Page 61: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Die unsichtbare VariableDie unsichtbare Variablewhile ( $zeile = <DATA> ) {

chomp $zeile;

$zeile =~ s/dies/das/;

print $zeile;

}

$zeile ist eine ganz normale Variable

Page 62: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Unsichtbare VariableUnsichtbare Variablewhile ( $_ = <DATA> ) {

chomp $_;

$_ =~ s/dies/das/;

print $_;

}

$_ ist eine besondere Variable...

Page 63: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Unsichtbare VariableUnsichtbare Variablewhile ( <DATA> ) {

chomp;

s/dies/das/;

print;

}

$_ kann unsichtbar werden!

Page 64: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Sind die dennSind die dennvöllig wahnsinnig?völlig wahnsinnig?

Page 65: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

JaJa

Page 66: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Obfuscated Perl ContestObfuscated Perl Contest

#:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :||open(Q,$0);while(<Q>){if(/^#(.*)$/){for(split( '-',$1)){$q=0;for(split){s/\|/:.:/xg; s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"\n";#.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:|

Page 67: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Damian ConwayDamian Conway

• Perl Hacker• Beispiel für weiteren Perl

Wahnsinn

Page 68: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Damian ConwayDamian ConwayA less positional programming language

There is no reason why programming languages could not also use inflexions, rather than position, to denote lexical roles."

"

Page 69: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Damian ConwayDamian ConwayA less positional programming language

There is no reason why programming languages could not also use inflexions, rather than position, to denote lexical roles.

Page 70: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Damian ConwayDamian Conway

use Lingua::Romana::Perligata;

adnota Illud Cribrum Eratothenismaximum tum val inquementum tum biguttam tum stadium egresso scribe.vestibulo perlegementum da meo maximo .maximum tum novumversum egresso scribe.da II tum maximum conscribementa meis listis.dum damentum nexto listis decapitamentum fac sic lista sic hoc tum nextum recidementum cis vannementa da listis. next tum biguttam tum stadium tum nextum tum novumversum scribe egresso.

cis

Page 71: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Damian ConwayDamian Conway

• Acme::Bleach– bereitet der komplizierte Code dir

Kopfschmerzen?– Acme::Bleach ist die Lösung!– Beim ersten Start des Programmes

wird der Code durch Whitespace ersetzt

– Kein Kopfweh mehr!– Programm funktioniert weiterhin

Page 72: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl CommunityPerl Community

• Larry Wall• Perl 6 Design Team + Parrot Team• Perl Foundation, siehe perl.org• PerlMongers = Usergroups pm.org • perlmonks.org = Forum

Page 73: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl CommunityPerl Community

• Konferenzen– Dt. Perl Workshop– O‘Reilly Conference– YAPC

Page 74: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

VermeidenVermeiden

• Manche Bewohner von Newsgroups

• Uralte CGI-Skripts– statt „Matts Script“– nms

Page 75: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl für ProfisPerl für Profis

3 Gründe warum Profis an Perl Freude haben werden– flexibilität– Kurzschreibweise– zu den Wahnsinnigen dazugehören

Page 76: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl Zukunft: Perl 5Perl Zukunft: Perl 5

• lebt und gedeiht• bleibt auch wenn Perl6 kommt

Page 77: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl 6 Perl 6 EntwicklungsprozessEntwicklungsprozess

• Kaffeetasse (2001)• RFCs (2001)• Apocalypse + Exegese auf

perl.com (2002-...)

Page 78: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl 6 Perl 6 VMVM

• Trennung von Sprache und VM• VM unterstützt andere Sprachen

Parrot

Python

Perl 6

Perl 5

= P

onie

Page 79: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Perl 6 FeaturesPerl 6 Features

(ausgewählte)$a = 5 | 6 | 7;

if ( $note == 5 | 6 ) {...}

if (any($a|$b) > all($x|$y|$z))

Page 80: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

BuchtippsBuchtipps

• Kamel-Buch• Programming

with Perl• Programmieren

mit Perl • Larry Wall et.al.• 3. Auflage (?)

Page 81: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

BuchtippsBuchtipps

• Lama-Buch• Learning Perl• Einfühung in Perl

(Win32) • Randal L.

Schwartz

Page 82: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

BuchtippsBuchtipps

• Easy Perl• ich• CGI für

Anfängerinnen

Page 83: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

BuchtippsBuchtipps

• Perl Cookbook• Perl Kochbuch • Tom Christiansen

und Nathan Torkington

• Nachschlagen

Page 84: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

BuchtippsBuchtipps

• Object Oriented Perl

• auch auf dt.• Damian Conway

Page 85: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

BuchtippsBuchtipps

• Data Munging with Perl

• David Cross

Page 86: Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Viel Spass am GerätViel Spass am Gerät