SlideShare ist ein Scribd-Unternehmen logo
Perl die  Taschenkettensäge   unter den Programmiersprachen Vortrag von Brigitte Jellinek, 18C3 19C3 if 2003
Inhalt Perl für Anfängerinnen
Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene
Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene und Umsteiger
Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene und Umsteiger Perl für Profis
Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene und Umsteiger Perl für Profis Die Perl Community
Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene Perl für Profis Die Perl Community Perl Zukunft Perl 6
Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene Perl für Profis Die Perl Community Perl Zukunft Buchtipps
Perl für Anfänger x Gründe warum man Perl als erste Programmiersprache lernen sollte
Perl für Anfänger Wer programmieren lernt,  hat ein Recht auf Spass
Mehr Spass durch Skript-Sprachen easy things should be easy keine sinnlose (oo-)Bürokratie print "Hallo Welt, wie gehts?";
Mehr Spass durch Skript-Sprachen interpretiert  schnelle Rückmeldung
Mehr Spass durch Skript-Sprachen wenige versch. Datentypen Zahl, Zeichenkette, Wahrheitswert? alles  Skalar $a = 42; print "Variable a ist $a "; $a = "zweiundvierzig"; print "Variable a ist $a "; $a = 13.7603; print "Variable a ist $a ";
Mehr Spass durch Skript-Sprachen 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>
Perl für Anfänger Wer programmieren lernt,  hat ein Recht auf  coole  Beispiele
cool? uncool? uncool n!  berechnen DOS Programm ewig programmieren, um ein Fenster zu erzeugen cool bunt interaktiv so gut wie die Profis heute: Web
Mehr Spass durch  Web-Programmierung Counter Gästebuch Postkarte E-Mail schicken Fotoalbum Abstimmung
Web-Programmierung HTML Warnung  vor Javascript Webspace mit ... Perl, PHP oder Visual Basic 
Perl für Anfänger Wer programmieren lernt,  sollte dafür nicht ein Vermögen ausgeben müssen
Perl ist gratis Larry Wall + die Gefährten
Perl 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
Perl 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 
Perl für Fortgeschrittene x Gründe, warum Leute  die schon programmieren können Perl lernen sollten
Weniger Aufwand,  mehr Wirkung veraltet, aber trotzdem beeindruckend
kenn ich schon Syntax: C, C++, Java, C# $a[ 0 ] = 42; $a[ 1 ] = &quot;zweiundvierzig&quot;; $a[ 2 ] = 3.141; for ($i=0; $i < 3; $i++ ) { print &quot;$i: Wert $a[ $i ]&quot;; }
kenn ich schon Patterns: vi, grep, egrep, sed $text = &quot;Voldemort besitzt den zweiten Zauberstab, der eine Phönixfeder enthält.&quot;; $text =~ s/Voldemort/Du weisst schon wer/g; print $text;
kenn ich schon Assoziative Arrays: awk $ring{'Gandalf'}  = &quot;Narya&quot;; $ring{'Galadriel'} = &quot;Nenya&quot;; $ring{'Elrond'}  = &quot;Velia&quot;; $ring{'Frodo'}  = &quot;Ash Nazgh&quot;;
kenn ich schon Listen: Lisp @a = ( 0, &quot;eins&quot;, 2 );  # Liste zuweisen $a[ 3 ] = &quot;drei&quot;;  # über Index zuweisen push( @a, &quot;bier&quot;);  # hinten anfügen push( @a, &quot;fünf&quot;, 6); # auch mehrere Elemente splice( @a, 4, 1, &quot;VIER!&quot; );    # in schweren Fällen: # in der Mitte ersetzen print &quot;@a&quot;;
kenn ich schon Dateien + Ordner: shell
Von x zu Perl
Von PASCAL zu Perl BEGIN END BEGIN Pascal; END Pascal;
Von PASCAL zu Perl { } BEGIN Pascal; END Pascal;
Von PASCAL zu Perl Syntax { } statt BEGIN END nie wieder compilieren Weniger Aufwand,  grössere Wirkung BEGIN Pascal; END Pascal;
Von 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[]
Von C++/Java zu Perl weniger Bürokratie nicht alles muss OO sein Simple things should be simple, complicated things should be possible 
public class HelloWorld { public static void main(   String args[])  { System.out.print ln ( &quot;Hello World&quot;); } }
print  &quot;Hello World&quot;;
Von Javascript zu Perl zur Abwechslung: eine Sprache die  funktioniert Variablen haben ein Sigil $a  @b  %c Typen gleich 
Von PHP zu Perl gratuliere!  du bist schon fast da Syntax  Typen Sigil  (~Änderung) grosse Projekte  mit Namespaces * viele Module mit CPAN SysAdmin, DataMunging, Kommandozeile 
<?php / / gehört zu Foo $a = 10; $b = 20; go(); // gehört zu Bar $bar_a = 42; $bar_b = 23; bar_go(); ?>
package Foo; $a = 10; $b = 20; go(); package Bar; $a = 42; $b = 23; go(); print  $Foo::a; print $Foo::b; Foo::go();
Neu in Perl: Hash nicht was ihr denkt „ assoziatives Array“ Index nicht Integer sondern String Narya Nenya Vilya Ash Nazgh Gandalf Galadriel Elrond Frodo 0 1 2 3 Narya Nenya Vilya Ash Nazgh 0 1 2 3 0 1 2 3
Neu in Perl: RegExp oder „pattern matching“ Text Ersetzen Muster in Text finden ein paar Sonderzeichen m/ ^ Am Anfang war/  m/ +  EURO/
Neu in Perl: RegExp $text = &quot;Voldemort besitzt den zweiten Zauberstab, der eine Phönixfeder enthält.&quot;; print &quot;Vorher: $text  <br>&quot;; $text =~ s/Voldemort/Du weisst schon wer/g; print &quot;Nachher: $text  <br>&quot;; if ( $text =~ m/Zauberstab/ ) { print &quot;Zauberstab gefunden!&quot;; }
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
Module installieren UNIX mit  cpan  von CPAN lädt vom Internet, kompiliert (falls nötig), installiert Windows mit  ppm lädt vom Internet  (vorkompiliert),  installiert
Perl für Fortgeschrittene 4 Gründe, warum Leute die schon programmieren können Perl lernen sollten Ähnlich wie .... Pattern Matching Hashes Viele Module
Perl Anwendung (typische)
Perl Anwendung:  CGI   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/
Perl Anwendung:  System-Administration   Dateien und Ordner @dateien = glob &quot;*.zone&quot; 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
Perl Anwendung:  Data Munging umformatieren Ziel: Text, HTML, SQL, XML,... Quelle: jedes kranke Format Werkzeuge Pattern Matching binär: pack / unpack Parse::RecDescent  (yacc++)
Perl für Profis x Gründe, warum Profis an Perl Freude haben werden
TMTOWTDI There‘s more  than one way  to do it = Unglaubliche  Flexibilität der Syntax
TMTOWTDI print  &quot;hallo&quot;;  # funktion ohne klammer print (&quot;hallo&quot;);  # funktion mit klammer # auch mehrere funktionen: reverse sort keys %hash;
TMTOWTDI print  &quot;ein Anf-z. amp;quot; in meinem string&quot;; print  'ein Anf-z. &quot; in meinem string'; print qq{zwei ' Anf-z. &quot; in meinem string}; print qq/zwei ' Anf-z. &quot; in meinem string/; print qq|zwei ' Anf-z. &quot; in meinem string|; $text =~ m/gesucht/; $text =~ m|gesucht|; $text =~ m=gesucht=; $text =~ m(gesucht);
Magie: Programme werden immer kürzer flexible Schreibweise Kurzschreibweise unsichtbare Variable
Magie: Programme werden immer kürzer # Datei öffnen (mit Fehlerbehandlung) $OK = open(HANDLE, &quot;datei.txt&quot;); if ( not $OK ) { die &quot;Problem beim lesen der Datei: $!&quot;; }
Magie: Programme werden immer kürzer # Datei öffnen (mit Fehlerbehandlung) $OK = open(HANDLE, &quot;datei.txt&quot;); unless ( $OK ) { die &quot;Problem beim lesen der Date: $!&quot;; } unless  ist if not
Magie: Programme werden immer kürzer # Datei öffnen (mit Fehlerbehandlung) $OK = open(HANDLE, &quot;datei.txt&quot;); die &quot;Problem beim lesen der Date: $!&quot;    unless $OK; Bedingung als &quot;Nachsatz&quot;
Magie: Programme werden immer kürzer # Datei öffnen (mit Fehlerbehandlung) open(HANDLE, &quot;datei.txt&quot;) or die &quot;Problem beim lesen der Date: $!&quot; Wie im Deutschen:  friss oder stirb!
Die unsichtbare Variable while  ( $zeile = <DATA> ) {   chomp $zeile; $zeile =~ s/dies/das/;   print $zeile; } $zeile  ist eine ganz normale Variable
Unsichtbare Variable while  (  $_  = <DATA> ) {   chomp  $_ ; $_  =~ s/dies/das/;   print  $_ ; } $_  ist eine besondere Variable...
Unsichtbare Variable while  ( <DATA> ) {   chomp; s/dies/das/;   print; } $_  kann unsichtbar werden!
Sind die denn völlig wahnsinnig?
Ja
Obfuscated 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 &quot;&quot; ; #.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:|
Damian Conway Perl Hacker Beispiel für weiteren Perl Wahnsinn
Damian Conway A less positional programming language There is no reason why programming languages could not also use inflexions, rather than position, to denote lexical roles.&quot; &quot;
Damian Conway A less positional programming language There is no reason why programming languages could not also use inflexions, rather than position, to denote lexical roles.
Damian Conway use Lingua::Romana::Perligata; adnota Illud Cribrum Eratothenis maximum 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
Damian 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
Perl Community Larry Wall Perl 6 Design Team + Parrot Team Perl Foundation, siehe perl.org PerlMongers = Usergroups pm.org  perlmonks.org = Forum
Perl Community Konferenzen Dt. Perl Workshop O‘Reilly Conference YAPC
Vermeiden Manche Bewohner von Newsgroups Uralte CGI-Skripts statt „Matts Script“ nms
Perl für Profis 3 Gründe warum Profis an Perl Freude haben werden flexibilität Kurzschreibweise zu den Wahnsinnigen dazugehören 
Perl Zukunft: Perl 5 lebt und gedeiht bleibt auch wenn Perl6  kommt
Perl 6 Entwicklungsprozess Kaffeetasse (2001) RFCs (2001) Apocalypse  +  Exegese   auf perl.com (2002-...)
Perl 6  VM Trennung von Sprache und VM VM unterstützt andere Sprachen Parrot Python Perl 6 Perl 5  = Ponie
Perl 6 Features (ausgewählte) $a = 5 | 6 | 7; if ( $note == 5 | 6 ) {...} if (any($a|$b) > all($x|$y|$z))
Buchtipps Kamel-Buch Programming with Perl Programmieren mit Perl  Larry Wall et.al. 3. Auflage (?)
Buchtipps Lama-Buch Learning Perl Einfühung in Perl (Win32)  Randal L. Schwartz
Buchtipps Easy Perl ich CGI für Anfängerinnen
Buchtipps Perl Cookbook Perl Kochbuch  Tom Christiansen und Nathan Torkington Nachschlagen
Buchtipps Object Oriented Perl auch auf dt. Damian Conway
Buchtipps Data Munging with Perl David Cross
Viel Spass am Gerät

Weitere ähnliche Inhalte

Was ist angesagt?

P6kontext2014
P6kontext2014P6kontext2014
P6kontext2014
lichtkind
 
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashXML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit Flash
Stephan Schmidt
 
GE_: mein perl_Kurse vol.III
GE_: mein perl_Kurse vol.IIIGE_: mein perl_Kurse vol.III
GE_: mein perl_Kurse vol.III
giovanni Colombo
 
Devs@Home - Einführung in Go
Devs@Home - Einführung in GoDevs@Home - Einführung in Go
Devs@Home - Einführung in Go
Frank Müller
 
GE_: mein perlsProgrammssprache Unterricht Vol.IV
GE_: mein perlsProgrammssprache Unterricht Vol.IVGE_: mein perlsProgrammssprache Unterricht Vol.IV
GE_: mein perlsProgrammssprache Unterricht Vol.IV
giovanni Colombo
 
Dynamische Websites mit XML
Dynamische Websites mit XMLDynamische Websites mit XML
Dynamische Websites mit XML
Stephan Schmidt
 
Interprozesskommunikation mit PHP
Interprozesskommunikation mit PHPInterprozesskommunikation mit PHP
Interprozesskommunikation mit PHP
Stephan Schmidt
 
Linuxtools fuer Developer
Linuxtools fuer DeveloperLinuxtools fuer Developer
Linuxtools fuer Developer
Mayflower GmbH
 
Designpatterns in Ruby
Designpatterns in RubyDesignpatterns in Ruby
Designpatterns in Ruby
pfleidi
 
Parallele Softwareentwicklung mit .NET 4.0
Parallele Softwareentwicklung mit .NET 4.0Parallele Softwareentwicklung mit .NET 4.0
Parallele Softwareentwicklung mit .NET 4.0
Qiong Wu
 
Battle of the Languages: Java und Python im Wettstreit beim Lösen von Program...
Battle of the Languages: Java und Python im Wettstreit beim Lösen von Program...Battle of the Languages: Java und Python im Wettstreit beim Lösen von Program...
Battle of the Languages: Java und Python im Wettstreit beim Lösen von Program...
gedoplan
 
Coffee Backone Introduction
Coffee Backone IntroductionCoffee Backone Introduction
Coffee Backone Introduction
Tino Isnich
 

Was ist angesagt? (12)

P6kontext2014
P6kontext2014P6kontext2014
P6kontext2014
 
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashXML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit Flash
 
GE_: mein perl_Kurse vol.III
GE_: mein perl_Kurse vol.IIIGE_: mein perl_Kurse vol.III
GE_: mein perl_Kurse vol.III
 
Devs@Home - Einführung in Go
Devs@Home - Einführung in GoDevs@Home - Einführung in Go
Devs@Home - Einführung in Go
 
GE_: mein perlsProgrammssprache Unterricht Vol.IV
GE_: mein perlsProgrammssprache Unterricht Vol.IVGE_: mein perlsProgrammssprache Unterricht Vol.IV
GE_: mein perlsProgrammssprache Unterricht Vol.IV
 
Dynamische Websites mit XML
Dynamische Websites mit XMLDynamische Websites mit XML
Dynamische Websites mit XML
 
Interprozesskommunikation mit PHP
Interprozesskommunikation mit PHPInterprozesskommunikation mit PHP
Interprozesskommunikation mit PHP
 
Linuxtools fuer Developer
Linuxtools fuer DeveloperLinuxtools fuer Developer
Linuxtools fuer Developer
 
Designpatterns in Ruby
Designpatterns in RubyDesignpatterns in Ruby
Designpatterns in Ruby
 
Parallele Softwareentwicklung mit .NET 4.0
Parallele Softwareentwicklung mit .NET 4.0Parallele Softwareentwicklung mit .NET 4.0
Parallele Softwareentwicklung mit .NET 4.0
 
Battle of the Languages: Java und Python im Wettstreit beim Lösen von Program...
Battle of the Languages: Java und Python im Wettstreit beim Lösen von Program...Battle of the Languages: Java und Python im Wettstreit beim Lösen von Program...
Battle of the Languages: Java und Python im Wettstreit beim Lösen von Program...
 
Coffee Backone Introduction
Coffee Backone IntroductionCoffee Backone Introduction
Coffee Backone Introduction
 

Andere mochten auch

FESTIVAL DE NADAL P5
FESTIVAL DE NADAL P5FESTIVAL DE NADAL P5
FESTIVAL DE NADAL P5
Col·legi Santa Anna
 
Webfonts im Jahr 2010
Webfonts im Jahr 2010Webfonts im Jahr 2010
Webfonts im Jahr 2010
Gerrit van Aaken
 
Mediengerechtes Webdesign
Mediengerechtes WebdesignMediengerechtes Webdesign
Mediengerechtes Webdesign
Gerrit van Aaken
 
Enterprise 2.0
Enterprise 2.0Enterprise 2.0
Enterprise 2.0
Bernd Schmitz
 
app-edemie
app-edemieapp-edemie
app-edemie
Anne Arndt
 
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
e-teaching.org
 
Eröffnungspodium Opco12 - Fragebogen
Eröffnungspodium Opco12 - FragebogenEröffnungspodium Opco12 - Fragebogen
Eröffnungspodium Opco12 - Fragebogen
e-teaching.org
 
Wey-Han Tan: Seminareinfuehrung "Spielend Lernen?", WS2011
Wey-Han Tan: Seminareinfuehrung "Spielend Lernen?", WS2011Wey-Han Tan: Seminareinfuehrung "Spielend Lernen?", WS2011
Wey-Han Tan: Seminareinfuehrung "Spielend Lernen?", WS2011
Wey-Han Tan
 
E-Learning-Trendforschung: Marc Göcks
E-Learning-Trendforschung: Marc GöcksE-Learning-Trendforschung: Marc Göcks
E-Learning-Trendforschung: Marc Göcks
e-teaching.org
 
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AGQualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Torsten Kleiber
 
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
e-teaching.org
 
Der Arbeitsmarkt für Kulturmanager in Deutschland: Entwicklung der Qualifikat...
Der Arbeitsmarkt für Kulturmanager in Deutschland: Entwicklung der Qualifikat...Der Arbeitsmarkt für Kulturmanager in Deutschland: Entwicklung der Qualifikat...
Der Arbeitsmarkt für Kulturmanager in Deutschland: Entwicklung der Qualifikat...
Christopher Buschow
 
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Christopher Buschow
 
Green Meetings - How?
Green Meetings - How?Green Meetings - How?
Green Meetings - How?
Christian Oblasser
 
Fremdsprachendidaktik und Lerntechnologien
Fremdsprachendidaktik und LerntechnologienFremdsprachendidaktik und Lerntechnologien
Fremdsprachendidaktik und Lerntechnologien
e-teaching.org
 
Nachhaltigkeit
NachhaltigkeitNachhaltigkeit
Nachhaltigkeit
projektwiese
 
Wedekind Ag Med PäD
Wedekind Ag Med PäDWedekind Ag Med PäD
Wedekind Ag Med PäD
e-teaching.org
 
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
e-teaching.org
 
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Prof....
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Prof....Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Prof....
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Prof....
e-teaching.org
 

Andere mochten auch (20)

FESTIVAL DE NADAL P5
FESTIVAL DE NADAL P5FESTIVAL DE NADAL P5
FESTIVAL DE NADAL P5
 
Webfonts im Jahr 2010
Webfonts im Jahr 2010Webfonts im Jahr 2010
Webfonts im Jahr 2010
 
Mediengerechtes Webdesign
Mediengerechtes WebdesignMediengerechtes Webdesign
Mediengerechtes Webdesign
 
Amazing Art
Amazing ArtAmazing Art
Amazing Art
 
Enterprise 2.0
Enterprise 2.0Enterprise 2.0
Enterprise 2.0
 
app-edemie
app-edemieapp-edemie
app-edemie
 
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
 
Eröffnungspodium Opco12 - Fragebogen
Eröffnungspodium Opco12 - FragebogenEröffnungspodium Opco12 - Fragebogen
Eröffnungspodium Opco12 - Fragebogen
 
Wey-Han Tan: Seminareinfuehrung "Spielend Lernen?", WS2011
Wey-Han Tan: Seminareinfuehrung "Spielend Lernen?", WS2011Wey-Han Tan: Seminareinfuehrung "Spielend Lernen?", WS2011
Wey-Han Tan: Seminareinfuehrung "Spielend Lernen?", WS2011
 
E-Learning-Trendforschung: Marc Göcks
E-Learning-Trendforschung: Marc GöcksE-Learning-Trendforschung: Marc Göcks
E-Learning-Trendforschung: Marc Göcks
 
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AGQualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
 
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Dr. U...
 
Der Arbeitsmarkt für Kulturmanager in Deutschland: Entwicklung der Qualifikat...
Der Arbeitsmarkt für Kulturmanager in Deutschland: Entwicklung der Qualifikat...Der Arbeitsmarkt für Kulturmanager in Deutschland: Entwicklung der Qualifikat...
Der Arbeitsmarkt für Kulturmanager in Deutschland: Entwicklung der Qualifikat...
 
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
 
Green Meetings - How?
Green Meetings - How?Green Meetings - How?
Green Meetings - How?
 
Fremdsprachendidaktik und Lerntechnologien
Fremdsprachendidaktik und LerntechnologienFremdsprachendidaktik und Lerntechnologien
Fremdsprachendidaktik und Lerntechnologien
 
Nachhaltigkeit
NachhaltigkeitNachhaltigkeit
Nachhaltigkeit
 
Wedekind Ag Med PäD
Wedekind Ag Med PäDWedekind Ag Med PäD
Wedekind Ag Med PäD
 
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
 
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Prof....
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Prof....Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Prof....
Mobiles Lernen” - ein Überblick über Szenarien und Technologien (Folien Prof....
 

Ähnlich wie Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003

Wundertüte Perl
Wundertüte PerlWundertüte Perl
Wundertüte Perl
lichtkind
 
Ruby on Rails SS09 03
Ruby on Rails SS09 03Ruby on Rails SS09 03
Ruby on Rails SS09 03
Daniel Dengler
 
A fool with a tool - Scraping Basics
A fool with a tool - Scraping BasicsA fool with a tool - Scraping Basics
A fool with a tool - Scraping Basics
Markus Uhl
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
NETWAYS
 
Ruby On Rails Einführung
Ruby On Rails EinführungRuby On Rails Einführung
Ruby On Rails Einführung
Reinhold Weber
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershell
Creasoft AG
 
Scala - A Scalable Language
Scala - A Scalable LanguageScala - A Scalable Language
Scala - A Scalable Language
pfleidi
 
Perl 6 Regex und Grammars
Perl 6 Regex und GrammarsPerl 6 Regex und Grammars
Perl 6 Regex und Grammars
lichtkind
 
Dancer Presentation FrOSCon 2010
Dancer Presentation FrOSCon 2010Dancer Presentation FrOSCon 2010
Dancer Presentation FrOSCon 2010
Thomas Fahle
 
Dart (Teil I der Tour de Dart)
Dart (Teil I der Tour de Dart)Dart (Teil I der Tour de Dart)
Dart (Teil I der Tour de Dart)
Nane Kratzke
 
Source Code Analyse - Ein praktikabler Ansatz
Source Code Analyse - Ein praktikabler AnsatzSource Code Analyse - Ein praktikabler Ansatz
Source Code Analyse - Ein praktikabler Ansatz
Marc Ruef
 
Source-Code-Analyse – ein praktikabler Ansatz
Source-Code-Analyse – ein praktikabler AnsatzSource-Code-Analyse – ein praktikabler Ansatz
Source-Code-Analyse – ein praktikabler Ansatz
Digicomp Academy AG
 
Log::Log4perl qw/:easy/
Log::Log4perl qw/:easy/Log::Log4perl qw/:easy/
Log::Log4perl qw/:easy/
Thomas Fahle
 
JAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzenJAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzen
Jan Stamer
 

Ähnlich wie Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003 (20)

Php Schulung
Php SchulungPhp Schulung
Php Schulung
 
Wundertüte Perl
Wundertüte PerlWundertüte Perl
Wundertüte Perl
 
Ruby on Rails SS09 03
Ruby on Rails SS09 03Ruby on Rails SS09 03
Ruby on Rails SS09 03
 
A fool with a tool - Scraping Basics
A fool with a tool - Scraping BasicsA fool with a tool - Scraping Basics
A fool with a tool - Scraping Basics
 
Ruby on Rails SS09 04
Ruby on Rails SS09 04Ruby on Rails SS09 04
Ruby on Rails SS09 04
 
Web Entwicklung mit PHP - Teil 2
Web Entwicklung mit PHP - Teil 2Web Entwicklung mit PHP - Teil 2
Web Entwicklung mit PHP - Teil 2
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
 
Ruby On Rails Einführung
Ruby On Rails EinführungRuby On Rails Einführung
Ruby On Rails Einführung
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershell
 
Scala - A Scalable Language
Scala - A Scalable LanguageScala - A Scalable Language
Scala - A Scalable Language
 
Perl 6 Regex und Grammars
Perl 6 Regex und GrammarsPerl 6 Regex und Grammars
Perl 6 Regex und Grammars
 
Dancer Presentation FrOSCon 2010
Dancer Presentation FrOSCon 2010Dancer Presentation FrOSCon 2010
Dancer Presentation FrOSCon 2010
 
Ruby, Ruby, Ruby!
Ruby, Ruby, Ruby!Ruby, Ruby, Ruby!
Ruby, Ruby, Ruby!
 
Dart (Teil I der Tour de Dart)
Dart (Teil I der Tour de Dart)Dart (Teil I der Tour de Dart)
Dart (Teil I der Tour de Dart)
 
Haxe & NME
Haxe & NMEHaxe & NME
Haxe & NME
 
Source Code Analyse - Ein praktikabler Ansatz
Source Code Analyse - Ein praktikabler AnsatzSource Code Analyse - Ein praktikabler Ansatz
Source Code Analyse - Ein praktikabler Ansatz
 
Source-Code-Analyse – ein praktikabler Ansatz
Source-Code-Analyse – ein praktikabler AnsatzSource-Code-Analyse – ein praktikabler Ansatz
Source-Code-Analyse – ein praktikabler Ansatz
 
Test
TestTest
Test
 
Log::Log4perl qw/:easy/
Log::Log4perl qw/:easy/Log::Log4perl qw/:easy/
Log::Log4perl qw/:easy/
 
JAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzenJAX 2024: Go in der Praxis einsetzen
JAX 2024: Go in der Praxis einsetzen
 

Mehr von Brigitte Jellinek

Betriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der PraxisBetriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der Praxis
Brigitte Jellinek
 
PHP at University - is it even possible?
PHP at University - is it even possible?PHP at University - is it even possible?
PHP at University - is it even possible?
Brigitte Jellinek
 
Railsgirls: Where did my HTML and CSS go
Railsgirls: Where did my HTML and CSS goRailsgirls: Where did my HTML and CSS go
Railsgirls: Where did my HTML and CSS go
Brigitte Jellinek
 
Regular Expressions - eine Einführung
Regular Expressions - eine EinführungRegular Expressions - eine Einführung
Regular Expressions - eine Einführung
Brigitte Jellinek
 
ditact it summer school 2010 kurzvorstellung
ditact it summer school 2010 kurzvorstellungditact it summer school 2010 kurzvorstellung
ditact it summer school 2010 kurzvorstellung
Brigitte Jellinek
 
Master Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule SalzburgMaster Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule Salzburg
Brigitte Jellinek
 
Bachelor Multimediaart an der Fachhochschule Salzburg
Bachelor Multimediaart an der Fachhochschule SalzburgBachelor Multimediaart an der Fachhochschule Salzburg
Bachelor Multimediaart an der Fachhochschule Salzburg
Brigitte Jellinek
 
Why use Perl?
Why use Perl?Why use Perl?
Why use Perl?
Brigitte Jellinek
 

Mehr von Brigitte Jellinek (9)

Betriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der PraxisBetriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der Praxis
 
PHP at University - is it even possible?
PHP at University - is it even possible?PHP at University - is it even possible?
PHP at University - is it even possible?
 
Railsgirls: Where did my HTML and CSS go
Railsgirls: Where did my HTML and CSS goRailsgirls: Where did my HTML and CSS go
Railsgirls: Where did my HTML and CSS go
 
Regular Expressions - eine Einführung
Regular Expressions - eine EinführungRegular Expressions - eine Einführung
Regular Expressions - eine Einführung
 
ditact it summer school 2010 kurzvorstellung
ditact it summer school 2010 kurzvorstellungditact it summer school 2010 kurzvorstellung
ditact it summer school 2010 kurzvorstellung
 
Master Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule SalzburgMaster Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule Salzburg
 
Bachelor Multimediaart an der Fachhochschule Salzburg
Bachelor Multimediaart an der Fachhochschule SalzburgBachelor Multimediaart an der Fachhochschule Salzburg
Bachelor Multimediaart an der Fachhochschule Salzburg
 
jQuery Kurz-Intro
jQuery Kurz-IntrojQuery Kurz-Intro
jQuery Kurz-Intro
 
Why use Perl?
Why use Perl?Why use Perl?
Why use Perl?
 

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

  • 1. Perl die Taschenkettensäge unter den Programmiersprachen Vortrag von Brigitte Jellinek, 18C3 19C3 if 2003
  • 2. Inhalt Perl für Anfängerinnen
  • 3. Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene
  • 4. Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene und Umsteiger
  • 5. Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene und Umsteiger Perl für Profis
  • 6. Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene und Umsteiger Perl für Profis Die Perl Community
  • 7. Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene Perl für Profis Die Perl Community Perl Zukunft Perl 6
  • 8. Inhalt Perl für Anfängerinnen Perl für Fortgeschrittene Perl für Profis Die Perl Community Perl Zukunft Buchtipps
  • 9. Perl für Anfänger x Gründe warum man Perl als erste Programmiersprache lernen sollte
  • 10. Perl für Anfänger Wer programmieren lernt, hat ein Recht auf Spass
  • 11. Mehr Spass durch Skript-Sprachen easy things should be easy keine sinnlose (oo-)Bürokratie print &quot;Hallo Welt, wie gehts?&quot;;
  • 12. Mehr Spass durch Skript-Sprachen interpretiert schnelle Rückmeldung
  • 13. Mehr Spass durch Skript-Sprachen wenige versch. Datentypen Zahl, Zeichenkette, Wahrheitswert? alles Skalar $a = 42; print &quot;Variable a ist $a &quot;; $a = &quot;zweiundvierzig&quot;; print &quot;Variable a ist $a &quot;; $a = 13.7603; print &quot;Variable a ist $a &quot;;
  • 14. Mehr Spass durch Skript-Sprachen 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>
  • 15. Perl für Anfänger Wer programmieren lernt, hat ein Recht auf coole Beispiele
  • 16. cool? uncool? uncool n! berechnen DOS Programm ewig programmieren, um ein Fenster zu erzeugen cool bunt interaktiv so gut wie die Profis heute: Web
  • 17. Mehr Spass durch Web-Programmierung Counter Gästebuch Postkarte E-Mail schicken Fotoalbum Abstimmung
  • 18. Web-Programmierung HTML Warnung vor Javascript Webspace mit ... Perl, PHP oder Visual Basic 
  • 19. Perl für Anfänger Wer programmieren lernt, sollte dafür nicht ein Vermögen ausgeben müssen
  • 20. Perl ist gratis Larry Wall + die Gefährten
  • 21. Perl 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
  • 22. Perl 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 
  • 23. Perl für Fortgeschrittene x Gründe, warum Leute die schon programmieren können Perl lernen sollten
  • 24. Weniger Aufwand, mehr Wirkung veraltet, aber trotzdem beeindruckend
  • 25. kenn ich schon Syntax: C, C++, Java, C# $a[ 0 ] = 42; $a[ 1 ] = &quot;zweiundvierzig&quot;; $a[ 2 ] = 3.141; for ($i=0; $i < 3; $i++ ) { print &quot;$i: Wert $a[ $i ]&quot;; }
  • 26. kenn ich schon Patterns: vi, grep, egrep, sed $text = &quot;Voldemort besitzt den zweiten Zauberstab, der eine Phönixfeder enthält.&quot;; $text =~ s/Voldemort/Du weisst schon wer/g; print $text;
  • 27. kenn ich schon Assoziative Arrays: awk $ring{'Gandalf'} = &quot;Narya&quot;; $ring{'Galadriel'} = &quot;Nenya&quot;; $ring{'Elrond'} = &quot;Velia&quot;; $ring{'Frodo'} = &quot;Ash Nazgh&quot;;
  • 28. kenn ich schon Listen: Lisp @a = ( 0, &quot;eins&quot;, 2 ); # Liste zuweisen $a[ 3 ] = &quot;drei&quot;; # über Index zuweisen push( @a, &quot;bier&quot;); # hinten anfügen push( @a, &quot;fünf&quot;, 6); # auch mehrere Elemente splice( @a, 4, 1, &quot;VIER!&quot; ); # in schweren Fällen: # in der Mitte ersetzen print &quot;@a&quot;;
  • 29. kenn ich schon Dateien + Ordner: shell
  • 30. Von x zu Perl
  • 31. Von PASCAL zu Perl BEGIN END BEGIN Pascal; END Pascal;
  • 32. Von PASCAL zu Perl { } BEGIN Pascal; END Pascal;
  • 33. Von PASCAL zu Perl Syntax { } statt BEGIN END nie wieder compilieren Weniger Aufwand, grössere Wirkung BEGIN Pascal; END Pascal;
  • 34. Von 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[]
  • 35. Von C++/Java zu Perl weniger Bürokratie nicht alles muss OO sein Simple things should be simple, complicated things should be possible 
  • 36. public class HelloWorld { public static void main( String args[]) { System.out.print ln ( &quot;Hello World&quot;); } }
  • 37. print &quot;Hello World&quot;;
  • 38. Von Javascript zu Perl zur Abwechslung: eine Sprache die funktioniert Variablen haben ein Sigil $a @b %c Typen gleich 
  • 39. Von PHP zu Perl gratuliere! du bist schon fast da Syntax Typen Sigil (~Änderung) grosse Projekte mit Namespaces * viele Module mit CPAN SysAdmin, DataMunging, Kommandozeile 
  • 40. <?php / / gehört zu Foo $a = 10; $b = 20; go(); // gehört zu Bar $bar_a = 42; $bar_b = 23; bar_go(); ?>
  • 41. package Foo; $a = 10; $b = 20; go(); package Bar; $a = 42; $b = 23; go(); print $Foo::a; print $Foo::b; Foo::go();
  • 42. Neu in Perl: Hash nicht was ihr denkt „ assoziatives Array“ Index nicht Integer sondern String Narya Nenya Vilya Ash Nazgh Gandalf Galadriel Elrond Frodo 0 1 2 3 Narya Nenya Vilya Ash Nazgh 0 1 2 3 0 1 2 3
  • 43. Neu in Perl: RegExp oder „pattern matching“ Text Ersetzen Muster in Text finden ein paar Sonderzeichen m/ ^ Am Anfang war/ m/ + EURO/
  • 44. Neu in Perl: RegExp $text = &quot;Voldemort besitzt den zweiten Zauberstab, der eine Phönixfeder enthält.&quot;; print &quot;Vorher: $text <br>&quot;; $text =~ s/Voldemort/Du weisst schon wer/g; print &quot;Nachher: $text <br>&quot;; if ( $text =~ m/Zauberstab/ ) { print &quot;Zauberstab gefunden!&quot;; }
  • 45. 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
  • 46. Module installieren UNIX mit cpan von CPAN lädt vom Internet, kompiliert (falls nötig), installiert Windows mit ppm lädt vom Internet (vorkompiliert), installiert
  • 47. Perl für Fortgeschrittene 4 Gründe, warum Leute die schon programmieren können Perl lernen sollten Ähnlich wie .... Pattern Matching Hashes Viele Module
  • 49. Perl Anwendung: CGI 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/
  • 50. Perl Anwendung: System-Administration Dateien und Ordner @dateien = glob &quot;*.zone&quot; 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
  • 51. Perl Anwendung: Data Munging umformatieren Ziel: Text, HTML, SQL, XML,... Quelle: jedes kranke Format Werkzeuge Pattern Matching binär: pack / unpack Parse::RecDescent (yacc++)
  • 52. Perl für Profis x Gründe, warum Profis an Perl Freude haben werden
  • 53. TMTOWTDI There‘s more than one way to do it = Unglaubliche Flexibilität der Syntax
  • 54. TMTOWTDI print &quot;hallo&quot;; # funktion ohne klammer print (&quot;hallo&quot;); # funktion mit klammer # auch mehrere funktionen: reverse sort keys %hash;
  • 55. TMTOWTDI print &quot;ein Anf-z. amp;quot; in meinem string&quot;; print 'ein Anf-z. &quot; in meinem string'; print qq{zwei ' Anf-z. &quot; in meinem string}; print qq/zwei ' Anf-z. &quot; in meinem string/; print qq|zwei ' Anf-z. &quot; in meinem string|; $text =~ m/gesucht/; $text =~ m|gesucht|; $text =~ m=gesucht=; $text =~ m(gesucht);
  • 56. Magie: Programme werden immer kürzer flexible Schreibweise Kurzschreibweise unsichtbare Variable
  • 57. Magie: Programme werden immer kürzer # Datei öffnen (mit Fehlerbehandlung) $OK = open(HANDLE, &quot;datei.txt&quot;); if ( not $OK ) { die &quot;Problem beim lesen der Datei: $!&quot;; }
  • 58. Magie: Programme werden immer kürzer # Datei öffnen (mit Fehlerbehandlung) $OK = open(HANDLE, &quot;datei.txt&quot;); unless ( $OK ) { die &quot;Problem beim lesen der Date: $!&quot;; } unless ist if not
  • 59. Magie: Programme werden immer kürzer # Datei öffnen (mit Fehlerbehandlung) $OK = open(HANDLE, &quot;datei.txt&quot;); die &quot;Problem beim lesen der Date: $!&quot; unless $OK; Bedingung als &quot;Nachsatz&quot;
  • 60. Magie: Programme werden immer kürzer # Datei öffnen (mit Fehlerbehandlung) open(HANDLE, &quot;datei.txt&quot;) or die &quot;Problem beim lesen der Date: $!&quot; Wie im Deutschen: friss oder stirb!
  • 61. Die unsichtbare Variable while ( $zeile = <DATA> ) { chomp $zeile; $zeile =~ s/dies/das/; print $zeile; } $zeile ist eine ganz normale Variable
  • 62. Unsichtbare Variable while ( $_ = <DATA> ) { chomp $_ ; $_ =~ s/dies/das/; print $_ ; } $_ ist eine besondere Variable...
  • 63. Unsichtbare Variable while ( <DATA> ) { chomp; s/dies/das/; print; } $_ kann unsichtbar werden!
  • 64. Sind die denn völlig wahnsinnig?
  • 65. Ja
  • 66. Obfuscated 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 &quot;&quot; ; #.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:|
  • 67. Damian Conway Perl Hacker Beispiel für weiteren Perl Wahnsinn
  • 68. Damian Conway A less positional programming language There is no reason why programming languages could not also use inflexions, rather than position, to denote lexical roles.&quot; &quot;
  • 69. Damian Conway A less positional programming language There is no reason why programming languages could not also use inflexions, rather than position, to denote lexical roles.
  • 70. Damian Conway use Lingua::Romana::Perligata; adnota Illud Cribrum Eratothenis maximum 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
  • 71. Damian 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
  • 72. Perl Community Larry Wall Perl 6 Design Team + Parrot Team Perl Foundation, siehe perl.org PerlMongers = Usergroups pm.org perlmonks.org = Forum
  • 73. Perl Community Konferenzen Dt. Perl Workshop O‘Reilly Conference YAPC
  • 74. Vermeiden Manche Bewohner von Newsgroups Uralte CGI-Skripts statt „Matts Script“ nms
  • 75. Perl für Profis 3 Gründe warum Profis an Perl Freude haben werden flexibilität Kurzschreibweise zu den Wahnsinnigen dazugehören 
  • 76. Perl Zukunft: Perl 5 lebt und gedeiht bleibt auch wenn Perl6 kommt
  • 77. Perl 6 Entwicklungsprozess Kaffeetasse (2001) RFCs (2001) Apocalypse + Exegese auf perl.com (2002-...)
  • 78. Perl 6 VM Trennung von Sprache und VM VM unterstützt andere Sprachen Parrot Python Perl 6 Perl 5 = Ponie
  • 79. Perl 6 Features (ausgewählte) $a = 5 | 6 | 7; if ( $note == 5 | 6 ) {...} if (any($a|$b) > all($x|$y|$z))
  • 80. Buchtipps Kamel-Buch Programming with Perl Programmieren mit Perl Larry Wall et.al. 3. Auflage (?)
  • 81. Buchtipps Lama-Buch Learning Perl Einfühung in Perl (Win32) Randal L. Schwartz
  • 82. Buchtipps Easy Perl ich CGI für Anfängerinnen
  • 83. Buchtipps Perl Cookbook Perl Kochbuch Tom Christiansen und Nathan Torkington Nachschlagen
  • 84. Buchtipps Object Oriented Perl auch auf dt. Damian Conway
  • 85. Buchtipps Data Munging with Perl David Cross
  • 86. Viel Spass am Gerät