Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Die Skriptsprache Perl Wolfgang Friebel DESY Zeuthen.

Ähnliche Präsentationen


Präsentation zum Thema: "Die Skriptsprache Perl Wolfgang Friebel DESY Zeuthen."—  Präsentation transkript:

1 Die Skriptsprache Perl Wolfgang Friebel DESY Zeuthen

2

3 Inhalt des Kurses n Teil 1 Grundlegende Konzepte u 1. Einführung u 2. Datentypen u 3. Kontrollstrukturen und Programmfluß u 4. Reguläre Ausdrücke u 5. Funktionen, I/O in Perl u 6. Debugger, Profiler, Fehlerbehandlung n Teil 2 Objektorientiertes Perl n Teil 3 Wichtige Perl-Module (Tk, DBI, CGI)

4 1. Einführung n Literatur n Weitere Informationsquellen n Perl auf dem Computer n Perl Slogans n Einführendes Beispiel

5 Literatur Programming Perl (Camel) Learning Perl (Llama) Advanced Perl Programming Perl Cookbook (Ram) Object Oriented Perl Mastering Regular Expressions Effective Perl Programming Learning Perl/Tk Goto Perl5 (deutsch) Perl Einführg., Anwendg., Referenz Kurzreferenzen (perl, perl/Tk) Wall, Christiansen, Schwartz 1996 Schwartz, Christiansen 1997 Sriram Srinivasan 1997 Christiansen, Torkington 1997 Damian Conway 1999 Jeffrey Friedl 1997 Hall, Schwartz 1998 Nancy Walsh 1999 Michael Schilli Farid Hajji (2.Aufl) 2000 Vromans (perl), Lidie (perl/Tk)

6 Weitere Informationsquellen n Zeitschriften F The Perl Journal (TPJ) F Artikel in iX, Linux Journal (deutsch und englisch) n Webadressen F - umfangreiches Archiv F - online Zeitschrift F CPAN (Comprehensive Perl Archive Network) ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN n Newsgruppen F comp.lang.perl.*, de.lang.perl.*

7 Weitere Informationsquellen (2) n Vorträge und andere Dokumente (siehe auch F Perl für UNIX und C-Kenner (F. Hajji, Köln 1997) F Perl5 by Example (M. Medinet) F Advanced topics in perl programming (Christiansen) F Practical Web Site Maintenance with Perl (Klein) F Perl Quick reference guide F Perl/Tk Pocket reference n Perl man pages (siehe nächste Seite)

8 Perl auf dem Computer Version ( perl -v ), Installationsdetails ( perl -V ) Zur Zeit (1/2000) aktuell 5.005_03 ab UNIX und NT Versionen aus einer Quelle n Online Information mit man und perldoc F perldoc bietet mehr als man perldoc perl entspricht man perl perldoc -f function liefert Funktionsdefinition perldoc perllocal - zusätzlich installierte Module perldoc perlfaq liefert FAQs perldoc DBD::mysql liefert Modulbeschreibung

9 Perl Slogans n Die 3 großen Programmierertugenden laziness, impatience and hubris n There is more than one way to do it (TMTOWTDI) Vergleich von natürlicher Sprache und Perl n Yet another perl hacker (CPAN/misc/japh) viele Programme, um diesen Spruch auszugeben n Far more than you ever wanted to know Reihe Artikelserie von T. Christiansen (u.a

10 Einführendes Beispiel perl -e print hello world!\n( UNIX) perl -e print qq(hello world!\n) ( NT) Datei hallo.pl: #!/usr/local/bin/perl -w #-w ist dein Freund #Unser erstes Beispiel print Wie gehts?\n; $wie = ; chomp $wie; print \u$wie? Naja Du arbeitest mit $^O\n; perl -w hallo.pl

11 2. Datentypen n 3 grundlegende Datenformate (und Pointer) Strings, Integer, Double Precision Numbers (und Pointer) n Datentypen enthalten obige Formate Konstanten123 aReferenzen\ Variablen$FilehandlesSTDIN Listen()FormateHEADER Hashes%

12 Konstanten n Zahlen: keine Überraschungen (bis auf _) u 123, 0755, 0x1f, 3e10, 1.5e-6, 10_000 Operationen mit Zahlen + - * / % ** Vergleiche >= == != n Strings nichtinterpretierte Strings: Wert: $100 interpretierte Strings: $wie gehts\nJa\0 u Here-Dokumente ähnlich wie in UNIX Shells

13 Anführungszeichen n Traditionell text # keine Interpolation $a\n # Interpolation `ls -l`# Befehl (Interpol.) /match/# Pattern (Interpol.) n Verallgemeinert q[] # beliebige Begrenzer qq{} # Klammern paarweise qx() # qw() # Wortweise Trennung m// # Pattern match qr() # Regexp (ab 5.005)

14 Konstanten (2) n Operationen mit Strings: Verkettung mit. (Punkt) abc.def Wiederholung mit x # x 70 n Vergleiche mit Strings: F lt le gt ge eq ne cmp n Lange Strings mit Here Dokumenten: $lang = <

15 Listen n Listen bestehen aus 0..n durch Komma getrennten und in Klammern eingeschlossenen Werten (1, 2, 3, abc, 3.14) n Listenelemente können adressiert werden: (1, 2, 3, abc, 3.14)[1,3] n Listen können links vom Gleichheitszeichen stehen: ($a,$b) = ($b,$a);#Vertauschen n Es gibt viele Funktionen, die Listen bearbeiten

16 Variablen keine Deklaration nötig, Anfangswert ist undef kann mit use strict; verhindert werden n Skalare Variablen beginnen mit $, danach folgt ein Name $wie der Name kann _ und 0..9 enthalten $a_01 der Name kann ein Ausdruck sein, dann in {} Beispiel: ${wi.e} n Spezielle (skalare magische) Variablen haben ein Sonderzeichen als Name

17 Arrayvariablen n Arrayvariablen beginnen danach folgt ein = (Friebel, W.); Index beginnt mit Null (genauer mit $[ ) Letzter Index ist $#name (-1 wenn leer) n Elemente von Arrayvariablen werden mit [] indiziert und starten mit $, nicht $initial = $name[1]; n Spezielle (magische)

18 Hashes n Hashes sind assoziative Arrays beginnen mit %, danach folgt ein Name statt mit Integer wird mit String (key) indiziert Hashes können auch mit Listen gefüllt werden %name = (´initial´, ´W.´, family => ´Friebel´); n Elemente von Hashes werden mit {} indiziert und starten mit $, nicht mit % $fname = $name{family};

19 Hashes (2) n Zugriff auf alle Elemente von Hashes erfolgt mit den Funktionen each, keys, values Reihenfolge der Einspeicherung bleibt nicht erhalten n Test ob Key/Value existiert erfolgt mit exists und defined n Spezielle (magische) Hashes z.B. %ENV, %SIG

20 Hausaufgaben n Welche speziellen Zeichenkonstanten gibt es? n Was ist der Wert von \n in Windows? n Welche Bitoperatoren gibt es? n Welche Funktion ist äquivalent zu bzw ? Die Antworten sind mit man perlop zu finden n Schreibe ein Programm mit Here Dokument Welche magischen Variablen gibt es? ( perlvar ) n Wozu sind die Funktionen defined und undef gut?


Herunterladen ppt "Die Skriptsprache Perl Wolfgang Friebel DESY Zeuthen."

Ähnliche Präsentationen


Google-Anzeigen