1 / 20

Die Skriptsprache Perl

Die Skriptsprache Perl. Wolfgang Friebel DESY Zeuthen. Inhalt des Kurses. Teil 1 Grundlegende Konzepte 1. Einführung 2. Datentypen 3. Kontrollstrukturen und Programmfluß 4. Reguläre Ausdrücke 5. Funktionen, I/O in Perl 6. Debugger, Profiler, Fehlerbehandlung

bliss
Download Presentation

Die Skriptsprache Perl

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Die Skriptsprache Perl Wolfgang Friebel DESY Zeuthen

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

  3. 1. Einführung • Literatur • Weitere Informationsquellen • Perl auf dem Computer • Perl Slogans • Einführendes Beispiel

  4. 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) Literatur

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

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

  7. Perl auf dem Computer • Version (perl -v), Installationsdetails (perl -V) Zur Zeit (1/2000) aktuell 5.005_03 ab 5.005 UNIX und NT Versionen aus einer Quelle • Online Information mit man und perldoc • perldoc bietet mehr als man • perldoc perl entspricht man perl • perldoc -f functionliefert Funktionsdefinition • perldoc perllocal - zusätzlich installierte Module • perldoc perlfaq liefert “FAQ’s” • perldoc DBD::mysql liefert Modulbeschreibung

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

  9. 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 geht’s?\n”; $wie = <STDIN>; chomp $wie; print ”\u$wie? Naja Du arbeitest mit $^O\n”; perl -w hallo.pl

  10. 2. Datentypen • 3 grundlegende Datenformate (und Pointer) Strings, Integer, Double Precision Numbers (und Pointer) • Datentypen enthalten obige Formate Konstanten 123 “a” Referenzen \ Variablen $ Filehandles STDIN Listen () Formate HEADER Arrays @ Objekte $ Hashes %

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

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

  13. Konstanten (2) • Operationen mit Strings: • Verkettung mit . (Punkt) ’abc’.’def’ • Wiederholung mit x’#’ x 70 • Vergleiche mit Strings: • lt le gt ge eq ne cmp • Lange Strings mit Here Dokumenten: $lang = <<EOF; #oder <<”EOF”; $wie geht es? Versuche doch auch mal ’EOF’ und `EOF` EOF

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

  15. Variablen • keine Deklaration nötig, Anfangswert ist undef • kann mit use strict; verhindert werden • 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”} • Spezielle (skalare magische) Variablen haben ein Sonderzeichen als Name

  16. Arrayvariablen • Arrayvariablen beginnen mit @, danach folgt ein Name @name = (”Friebel”, ”W.”); Index beginnt mit Null (genauer mit $[) Letzter Index von @name ist $#name (-1 wenn leer) • Elemente von Arrayvariablen werden mit [] indiziert und starten mit $, nicht mit @ $initial = $name[1]; • Spezielle (magische) Arrays z.B. @ARGV, @INC

  17. Hashes • 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´); • Elemente von Hashes werden mit {} indiziert und starten mit $, nicht mit % $fname = $name{family};

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

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

More Related