Die Skriptsprache Perl

Slides:



Advertisements
Ähnliche Präsentationen
OStR Dipl. Ing. Carsten Kraft
Advertisements

Forschungszentrum caesar
10. Grundlagen imperativer Programmiersprachen
4. Serverbasierte Programmierung: Perl 4.1Grundlagen 4.1.1HTTP-Server und CGI-Schnittstelle 4.1.2Formulare 4.1.3Ein einfaches Perl Programm 4.2Interaktion.
eXist Open Source Native XML Database
FH-Hof Einbindung von JavaScript Anweisungen
Java: Grundlagen der Sprache
Übungen 10 Leute haben das erste Übungsblatt allein bearbeitet bzw. separat abgegeben. Wichtig: Übungspartner finden! Außerdem: Lösungen nur einmal abgeben.
Die Skriptsprache Lua Softwaretechnologie II.
Dynamische Webseiten mit PHP Oder: LAMP - The open way.
Dynamische Webseiten mit PHP
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Architektur von Renardus Göttingen State and University Library, Germany (SUB) Frank Klaproth The Academic Subject.
Die Skriptsprache Perl (6) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (7)
Die Skriptsprache Perl (3) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
LaTeX Holger Stengel RRZE Holger Stengel,
Einführung in C EDV1 - 03C-Einführung.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die Programmiersprache Java
AufwÄrmung A look at the future…..Match the German phrases on the left to the English ones on the right. Do your best; I am grading on participation! Wie.
Wissen kennen to know. kennen: (regular conjugation) To know a person, place, things ( to be acquainted with) (direct object!!!)
Wissensbasierte Systeme JESS Java Expert System Shell.
Test Review Deutsch I Kapitel I.
Proseminar Programmiersprachen Python
FORTRAN 77.
Was werden wir heute machen?
Guten Tag Klasse 9! Willkommen!.
Kennst du sie?.
Past Perfect Tense.
REBOL. Was ist REBOL frei verfügbar plattformübergreifend highly reflective flexibel kompakt interpretiert.
Was mich ursprünglich von Perl überzeugt hat. Gegeben ist eine Textdatei, deren Größe unbekannt ist. Sie ist jedoch so klein, daß sie komplett in den Speicher.
Variablen in Programmiersprachen
„einfaches Java Programm“
EPROG Tutorium #4 Philipp Effenberger
Dynamische Webseiten-Generierung
Einführung in PHP.
Einführung in PHP 5.
MODULA-2.
Chapter 5 Stadt Final Jeopardy
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
1 Tagesüberblick 6 Lösung Hausaufgabe/Fragen Weitere besondere Variablen Hier-Dokument Unterprogramme.
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
Vocabulary Chapter 1.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Programmierungssprache PERL
XPath Datenmodell und Sequenzen Universität zu Köln – Historisch-Kulturwissenschaftliche Informationsverarbeitung Datenbanktechnologie – Daniel Ebner –
(Syntax, Strings/Zahlen, Variablen, Arrays)
Alles über mich Sprachtest
1 Tagesüberblick 7 Lösung Hausaufgabe/Fragen mehrdimensionale Datenstrukturen Module Fehlersuche Zusammenfassung Feedback.
PERL Eike Busse2 Gliederung 1.Einleitung 2.Geschichte 3.Eigenschaften/Merkmale von Perl 4.HTTP Server und Perl 5.Sicherheit 6.Perl programmieren.
The Programming Language Pascal
deutsch German die Frau woman sein to be Grüß dich! Hi! Hello!
you (formal) Sie Good night! Gute Nacht! What is...‘s phone number? Wie ist die Telefonnummer von...?
Variablen und Datentypen
Seminar Internettechnologie Prof. Dr. Lutz Wegner Julia Mikov WS 06/07
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Tutorium Software-Engineering SS14 Florian Manghofer.
Die Programmiersprache Ruby Seminarvortrag von Lia Schulze Dephoff 1.
Regular Expressions HBU-LINUX-2003 Adduser.sh? My_user_Verw.sh? AufgUser.sh? Wo ist das Script ??????? /home/donald ? /home ? /tmp ?
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Vorbesprechung, Administrativa, Einführung Alexander Sczyrba
Deutsch I Telling time….
Netzwerk - Programmierung
- moodle – a internet based learning platform
 Präsentation transkript:

Die Skriptsprache Perl 27.03.2017 Die Skriptsprache Perl Wolfgang Friebel DESY Zeuthen

27.03.2017

Inhalt des Kurses Teil 1 Grundlegende Konzepte 27.03.2017 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) Teil 1 soll in ca 5 Lektionen abgehandelt werden, Teil 2 in ca 4 und Teil 3 in 3 Lektionen. Änderungen nach Wunsch und Interesse

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

Literatur Programming Perl (Camel) Learning Perl (Llama) 27.03.2017 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) Titel 1-4 sind auch in deutsch erhältlich Als Einführung geeignet: Llama Buch, Learning Perl/Tk, Buch von Hajji Als Referenz geeignet: Camel Buch, Buch von Hajji, Regex Buch Bücher mit praktischen Tips: Cookbook, Effective Perl Programming, Goto Perl5, Hajji Bücher für Fortgeschrittene Advanced Perl Programming, OO Perl

Weitere Informationsquellen 27.03.2017 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.* Perl Journal ist bei mir erhältlich Die TPJ Artikel sind online verfügbar (passwortgeschützt) Bei Suche nach Perl-Software sollte man zuerst im CPAN schauen Vieles ist auch auf unserem anonymen ftp (/net/ftp/unix/gnu/perl)

Weitere Informationsquellen (2) 27.03.2017 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) Dokumente sind unter www.ifh.de/~friebel/perl gesammelt

27.03.2017 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 function liefert Funktionsdefinition perldoc perllocal - zusätzlich installierte Module perldoc perlfaq liefert “FAQ’s” perldoc DBD::mysql liefert Modulbeschreibung Unter UNIX sind auf manchen Systemen /usr/bin/perl und /usr/local/bin/perl unterschiedliche Versionen /usr/local/bin/perl ist i.d.R. besser gepflegt Unter Windows empfehle ich, die Befehle aus einem Editor heraus zu geben, der Command line editing und history unterstützt (emacs, xemacs, vim) Die MSDOS Eingabeaufforderung ist denkbar ungeeignet

Perl Slogans Die 3 großen Programmierertugenden 27.03.2017 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)

Einführendes Beispiel 27.03.2017 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 Die Windows Kommandointerpreter akzeptieren keinén Apostroph Alles nach # bis Zeilenende ist Kommentar Befehle werden durch ; getrennt Leerzeichen und Zeilenumbruch sind nur in Srings signifikant Innerhalb von “ werden Variablen und spezielle Zeichen (\n) interpretiert Das Zeichen Newline (\n) wird bei Input mit übergeben Bei Output muß es explizit angegeben werden Variablen beginnen mit $ Folgt ein Sonderzeichen, sind das spezielle Variablen qq, chomp und print sind Funktionen Die Beschreibung erhält man mit perldoc -f

2. Datentypen 3 grundlegende Datenformate (und Pointer) 27.03.2017 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 %

Konstanten Zahlen: keine Überraschungen (bis auf _) Strings 27.03.2017 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 Es gibt für Zahlen weitere Operationen (z.B. Bitoperationen) die hier nicht besprochen werden

Anführungszeichen Traditionell ’text’ #keine Interpolation 27.03.2017 Anführungszeichen 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) Benutzung der beiden Methoden ist gleichwertig Bei verallgemeinerter Methode ist Klammerschachtelung erlaubt qr kann Geschwindigkeitsvorteile bringen

Konstanten (2) Operationen mit Strings: Vergleiche mit Strings: 27.03.2017 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 Die Konstruktion mit ’EOF’ interpretiert weder Variablen noc spezielle Zeichenkonstanten Die Konstruktion mit `EOF` wandelt Betriebssystembefehle in Text um Kein Leerzeichen zwischen << und EOF !!! Semikolon nicht vergessen !!!

27.03.2017 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 In Listen könnten die Doppelapostrophs entfallen Das würde evtl. zu Verwechslung mit Funktionsnamen führen Deshalb ist das nicht empfohlen und führt mit use strict; oder use strict subs; zu einem Fehler

Variablen keine Deklaration nötig, Anfangswert ist undef 27.03.2017 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 Die wichtigste magische Variable ist $_ Sie stellt das erwartete Argument in Funktionen dar, wenn keins angegeben wurde

Arrayvariablen Arrayvariablen Elemente von Arrayvariablen 27.03.2017 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 Um die vielen Apostrophs zu vermeiden schreibt man besser @name = qw( Friebel W. ); Spezielle Arrays (und Hashes) haben Namen, die nur Großbuchstaben enthalten, daher sollten nutzerdefinierte Variablennamen auch Kleinbuchstaben enthalten

Hashes Hashes sind assoziative Arrays Elemente von Hashes 27.03.2017 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}; Sowohl die Notation mit Komma als auch mit => sind zulässig Die => Notation ist besser lesbar und vermeidet Fehler (ungerade Anzahl von Elementen) Bei der => Notation können die Apostrophs für den Key entfallen Das gilt ebenfalls für die Keys in {}

Hashes (2) Zugriff auf alle Elemente von Hashes 27.03.2017 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 Setzt man $hash{key} = undef; dann existiert der Value nicht mehr Mit delete verschwindet auch der Key

Hausaufgaben Welche speziellen Zeichenkonstanten gibt es? 27.03.2017 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?