1 / 24

PERL & CGI

PERL & CGI. Seminar Internettechnologie Markus Matz 06.01.2005. Übersicht. Practical Extraction and Report Language (PERL) Allgemeines „Hallo Welt“ Skript Datentypen, Operatoren, Bedingungen und Schleifen Reguläre Ausdrücke Subroutinen Dateihandles Common Gateway Interface (CGI)

marcellus
Download Presentation

PERL & CGI

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. PERL & CGI Seminar Internettechnologie Markus Matz 06.01.2005

  2. Übersicht • Practical Extraction and Report Language (PERL) • Allgemeines • „Hallo Welt“ Skript • Datentypen, Operatoren, Bedingungen und Schleifen • Reguläre Ausdrücke • Subroutinen • Dateihandles • Common Gateway Interface (CGI) • Allgemeines • Beispiel • Eingabedaten verarbeiten • Ausgabe • CGI Variable • Zusammenfassung

  3. PERL – Allgemeines (1) • Larry Wall, 1987 • Informationen extrahieren und verarbeiten (z.B. Systemadministration) • oft zu komplex für Shellskripte • eigenes C-Programm zuviel Aufwand

  4. PERL – Allgemeines (2) • weitgehend plattformunabhängig • Freeware, aktuelle Version 5 • Erstellen/Bearbeiten mit jedem Texteditor möglich • Dateien enden auf .pl

  5. „Hallo Welt“ Skript #!/usr/bin/perl –w print "Hallo Welt!\n";

  6. Datentypen – Skalare Variable • beginnen immer mit „$“ z. B. $variable • keine Unterscheidung zwischen String, Integer, Float… usw. • keine explizite Konvertierung nötig

  7. Datentypen - Array • beginnen immer mit „@“ z.B. @array • Zuweisung z.B. durch Listen oder Range • @zahlen = (1, 2, 3, 4); • @vieleZahlen = (1 .. 1000); • Zugriff auf Elemente • $zahlen[0]  das erste Element • $zahlen[3]  das letzte Element • $zahlen[-1]  das letzte Element • Dynamisches Wachsen möglich • $zahlen[4] = 10;

  8. Datentypen – Hashes (1) [1]

  9. Datentypen – Hash (2) • beginnen immer mit „%“ z.B. %hash • beinhalten immer Schlüssel-Wert-Paare • %paare = ('rot'=>“255,0,0“, 'grün'=>“0,255,0“, 'blau'=>“0,0,255“); • Zugriff durch eindeutigen Schlüssel • $paare{‚rot‘} entspricht 255,0,0 • Konvertieren durch einfache Zuweisung • %a = @b; und umgekehrt @b =%a;

  10. Operatoren • Arithmetische Operatoren • Addition, Subtraktion, Negation, Multiplikation, Division, Potenzieren und Modulo • Gleichheits- und Vergleichsoperatoren • Gleich, ungleich, kleiner, größer, kleinergleich und größergleich • Logische Operatoren • and, or, not

  11. Bedingungen und Schleifen • if, if...else, und if...elsif • $wert = $dies || $das; • while-Schleifen (until-Schleifen) • do…while, do…until • For-Schleifen, foreach-Schleifen • Schleifensteuerung mit: • last – entspricht break in z. B. Java • next – springt zum nächsten Durchlauf • Redo – startet den aktuellen Durchlauf neu

  12. Reguläre Ausdrücke • Muster in vorhandenen Daten finden und manipulieren • @links = $html =~ /href="(.*?)"/gi; [3]

  13. Funktionsdefinition sub addiere{… Funktionsaufruf addiere(); lokale Variable durch my… definiert Rückgabewert durch return… Sub addieren{ my $zahl1 = $_[0]; my $zahl2 = $_[1]; return $zahl1 + $zahl2; } Subroutinen

  14. Dateihandles open(WRITE, „>C:\Datei.txt“); print WRITE „1\n2\n3\n“; close(WRITE); open(APPEND, „>>C:\Datei.txt“); print APPEND „4\n5\n“; close(APPEND); open(READ, „C:\Datei.txt“); while (<READ>){ print $_; }

  15. CGI - Allgemeines (1) • Benutzer fordert HTML-Formular an • Webserver sendet gewünschtes Formular • Benutzer füllt Formular aus und klickt auf „abschicken“ • Server gibt eingegebene Daten an CGI-Skript • Skript verarbeitet Daten und gibt Ergebnis an Server zurück • Server sendet Ergebnis an Benutzer

  16. CGI - Allgemeines (2) [1]

  17. Beispiel (1) <HTML> <HEAD> <TITLE>Tell Me Your Name</TITLE> </HEAD> <BODY> <FORM ACTION="/cgi-bin/name.pl"> <P>Geben Sie Ihren Namen ein: <INPUT NAME="name"> <P><INPUT TYPE="SUBMIT" VALUE="Abschicken!"> </FORM> </BODY> </HTML>

  18. Beispiel (2) #!/usr/bin/perl -w use strict; use CGI qw(:standard); print header; print start_html('Hallo!'); print "<H1>Hallo, ", param('name'),"!</H1>\n"; print end_html;

  19. Eingabedaten verarbeiten #!/usr/bin/perl -w use strict; use CGI qw(:standard); print header; print start_html('Hallo!'); print "<H1>Hallo, ", param('name'),"!</H1>\n"; print end_html;

  20. Ausgabe #!/usr/bin/perl -w use strict; use CGI qw(:standard); print header; print start_html('Hallo!'); print "<H1>Hallo, ", param('name'),"!</H1>\n"; print end_html;

  21. CGI Variable

  22. Was ist noch möglich? • Weiterleitung an HTML-Dateien im Internet • Manipulation von Cookies • Dateien bearbeiten, die über HTML-Formulare hochgeladen wurden • Datenbankzugriffe • … • über 10.000 Module frei verfügbar

  23. Zusammenfassung • PERL kann alles, was eine aktuelle Programmiersprache auch kann • Stärken im Umgang mit regulären Ausdrücken • CGI ermöglicht den Aufruf von PERL-Skripten durch einen Webserver • Übergebene Daten können durch das aufgerufene Skript bearbeitet werden • Ergebnis wird über den Webserver an den Browser zurückgegeben • Weite Verbreitung – für (fast) jedes Problem gibt es ein passendes Modul

  24. Quellenangaben [1] www.perlboard.de [2] http://aktuell.de.selfhtml.org/links/cgiperl.htm [3] „Einführung in PERL für Win32 Systeme“; Schwartz, Olson und Christiansen; 1998; O‘Reilly Verlag

More Related