die skriptsprache perl

Post on 01-Feb-2016

29 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

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

Teil 2 Objektorientiertes Perl Teil 3 Wichtige Perl-Module (Tk, DBI, CGI)

1. Einführung

Literatur Weitere Informationsquellen Perl auf dem Computer Perl Slogans Einführendes Beispiel

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)

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.*

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)

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

Perl Slogans

Die 3 großen Programmierertugendenlaziness, 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 ReiheArtikelserie von T. Christiansen (u.a www.perl.com)

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

2. Datentypen

3 grundlegende Datenformate (und Pointer)Strings, Integer, Double Precision Numbers (und Pointer)

Datentypen enthalten obige FormateKonstanten 123 “a” Referenzen \

Variablen $ Filehandles STDIN

Listen () FormateHEADER

Arrays @ Objekte $

Hashes %

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

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)

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

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

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

Arrayvariablen

Arrayvariablenbeginnen 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

Hashes

Hashes sind assoziative Arraysbeginnen 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};

Hashes (2)

Zugriff auf alle Elemente von Hasheserfolgt 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

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?

top related