lehrerbibliothek.deDatenschutzerklärung
Perl für Profis Bausteine fürs Web und fortgeschrittene Anwendungen
Perl für Profis
Bausteine fürs Web und fortgeschrittene Anwendungen




Christian Kirsch (Hrsg.)

dpunkt.verlag
EAN: 9783898641371 (ISBN: 3-89864-137-6)
332 Seiten, paperback, 17 x 24cm, Oktober, 2001

EUR 36,00
alle Angaben ohne Gewähr

Umschlagtext
Perl hat sich als eine der wichtigsten Skriptsprachen etabliert und bildet heute den Leim, der das Internet zusammenhält. Während die Sprache selbst durch eine umfangreiche Fachliteratur dokumentiert ist, findet man nur schwer Lösungen für praktische Anwendungen, die man auf eigene Projekte übertragen kann. Hier schafft dieses Buch Abhilfe, indem es praxisbezogene Texte versammelt, die Problemlösungen mit Perl illustrieren und dem Entwickler bei der Arbeit wertvolle Hilfestellung bieten.



Die Beiträge decken die häufigsten Einsatzgebiete von Perl ab:



- Fundamente

Die Basis vieler fortgeschrittener Programmiertechniken: Implementierung von Objekten, reguläre Ausdrücke, Multithreading, Anbindung anderer Sprachen und Programme.



- Allgemeine Anwendungen

Einsatz von Perl für Aufgaben außerhalb des Web: Server, SMS-Versand, OLE-Analyse, Anbindung von PDAs, NT-Administration.



- Bausteine für das Web

Techniken und Module für Web-Anwendungen: CGI-Programmierung, Datenbankanbindung, Integration von Perl in HTML-Seiten, dynamisches Erzeugen von 3D-Grafiken.



- Web-Anwendungen

Komplette Lösungen für das Web: Überwachung von HTML-Seiten auf Änderungen, Link-Prüfung, Bannerwerbung, Erstellung von Inhaltsverzeichnissen für Web-Server.



Das Buch wendet sich an Programmierer, die bereits über grundlegende Kenntnisse von Perl verfügen und Anregungen sowie Problemlösungen für eigene Anwendungsfälle suchen. Es enthält Beiträge, die in der "iX - Zeitschrift für professionelle Informationstechnik" erschienen sind und überarbeitet wurden, sowie unveröffentlichte Texte.
Inhaltsverzeichnis
Teil 1

Fundamente

Christian Kirsch
CPAN – Quelle der Weisheit
Automatik für Linux und Unix
Module unter Windows

Michael Schilli
Objektorientierte Programmierung
Über Referenzen zu Objekten Klassendefinition
bless bindet Objekte an Klassen
Instanzvariablen benutzen
Unix-Prozess mit Objekten modellieren
Vererbung
Konstruktoren
Statische Konstruktoren und virtuelle Funktionen
Multiple Vererbung
Eine Anwendung: Persistente Objekte
Listings
Listing 1: Prozesse starten und beenden
Listing 2: Die Prozess-Klasse
Listing 3: Vererben von Methoden
Listing 4: Vererbung von Attributen
Listing 5: Mehrfachvererbung
Listing 6: Persistente Datenspeicherung
Listing 7: Beispiel für persistente Objekte

Susanne Schmidt
Reguläre Ausdrücke
NFAs basieren auf Backtracking
Vorausschauende Suche
Mit oder quotemeta schützen
Beliebige Begrenzer statt /
Newline ist nicht immer Zeilenende
Funktionen in Ausdrücken
Umlaute und Sonderzeichen
Aufbau regulärer Ausdrücke

Christian Kirsch
Reguläre Ausdrücke: Tipps und Tricks

Peter Dintelmann
sort() – Ordnung muss sein
Routiniert sortiert
Die Form von Sortierroutinen
Caching
Daten wie im richtigen Leben ...
Die Schwartz’sche Transformation
Die Guttman-Rosler-Transformation
Sortieren mit Modul

Christian Kirsch
Babylonische Vielfalt mit Unicode
Unicode für gemischte Texte
Mehr Zeichenklassen
Unicode-Zeichen eingeben

Jens Ohlig
Java Perl Lingo – freie Schnittstelle zu Java
Perl-Skripts als Java-Methoden
Methodenüberladung nur in Java
Listings
Listing 1: Sparversion von grep
Listing 2: Methodenüberladung
Installation der JPL-Quellen

Andreas Geissel
C und C++ von Perl aus nutzen
C-Struktur als Skalar oder Referenz
C-Definitionen in der XS-Datei
C++-Klassen in Perl nutzen
Listings
Listing 1: Auszüge aus c_struct.xs
Listing 2: Test
Listing 3: Auszüge aus cpp_class.xs
Listing 4: typemap-Datei
Listing 5: C++-Test

Marc Lehmann
Gimp: Grafiken erzeugen und manipulieren
Perl-Funktion mit register einbinden
Gimp-Server für Batch-Betrieb
Verkürzte Schreibweise für Methoden
Zeichnen nur im Polygon
Listings
Listing 1: Layer an Bildgröße anpassen
Listing 2: Zufallskunst
Sparsame Aufrufe

Jens Ohlig
Grammatiken und Parser mit Parse::RecDescent
Alan Turing

Michael Schilli
Kryptoalgorithmen in Perl
Ketten- und blockweises Kodieren
Symmetrische oder asymmetrische Verschlüsselung
Message-Digest sichert Integrität
Listings
Listing 1: xor.pl
Listing 2: des.pl
Listing 3: cbc.pl
Listing 4: crypt.pl
Listing 5: dig_md5.pl
Listing 6: hmac.pl

Michael Schilli
Hilfreiche Perl-Einzeiler für Unix und Windows
grep, awk und sed in einem
Dateien automatisch editieren
Kopieren und Verschieben à la Unix
Uuencode und Base 64 entziffern

Teil 2

Traditionelle Anwendungen

Michael Schilli
Verteilte Skripts
Sicherer Sandkasten für Perl-Programme
Perl-Code remote ausführen
Rechte für Benutzer vergeben
Asymmetrische Verschlüsselung mit PGP
Benötigte Software
Listings
Listing 1: Trivialer Client
Listing 2: Trivialer Server
Listing 3: Pull-Client
Listing 4: Pull-Server

Ramon Wartala
E-Mails als SMS- oder Pager-Nachricht
Initialisierungsdatei à la Windows
Text für SMS, Zahlen für Scall
Ergänzungen sind noch möglich
Listings
Listing 1: wmm.ini
Listing 2: Auszüge aus wmm.pl
SMS-Gateway selber bauen

Martin Schwartz
OLE-Dokumente analysieren
Dateisystem für Dokumente
Dokument-Properties in Perl-Variablen
Word-Dokumente entschlüsselt
Listings
Listing 1: Dokument-Directory lesen
Listing 2: Passwort ermitteln

Bernd Lewerenz
R/3-Steuerung per Skript
Lizenz zum Abmelden nötig
Listings
Listing 1: ABAP
Listing 2: user_del.pl
Geheimnisvolles se37

Christian Kirsch
Palm-PDAs synchronisieren
Adressen mit MySQL synchronisieren
Telefon und E-Mail: Komfort mit Tücken
Anatomie des Skripts
Abgleich und Aufräumen
Verbesserungsmöglichkeiten
Listings
Listing 1: Benutzerdaten ausgeben
Listing 2: Memos auslesen
Listing 3: Synchronisierung zwischen Palm und MySQL

Stephan Grell · Ramon Wartala
Automatische Indexierung von Audiodaten mit ViaVoice
Nachrichtensendungen thematisch segmentieren
Wörter in die Datenbank schreiben
Tabellenstrukturen
Mehr Treffer durch Unterricht für ViaVoice
C++ mit Perl verbinden
Listings
Listing 1: Segmentierung
Listing 2: Audiodaten in Tabellen ablegen
Quellen und Voraussetzungen

Christian Kirsch
XML-Parser einsetzen
Vorgefertigte oder selbst gebaute Parser
Zugriff auf Elemente mit Subs
Stream-Parser benutzt Callbacks
EndTag() erzeugt HTML-Code
Zugriff auf Attribute über %_
Ein komplettes Beispiel
Listings
Listing 1: Von XML nach vCard
Listing 2: adressen.xml
Listing 3: Von XML nach HTML
Listing 4: Programmlistings extrahieren

Betty Kainz
NT-Administration per Browser
Initialisierung und Anpassung
Vorbereitung für das GUI
Ähnliche Funktionen für Gruppen und Benutzer
Benutzer: Konten erstellen, Gruppen festlegen
Finale: Erweiterungen und Ergänzungen
Listings
Listing 1: Frameset oder Inhalte erzeugen
Listing 2: Frameset erzeugen
Listing 3: Formulare für Benutzerverwaltung
Listing 4: Neue Benutzer einrichten
Listing 5: Benutzerkonten einrichten

Teil 3

Bausteine fürs Web

Christian Kirsch
CGI-Skripts
GET und POST gleich behandeln
JavaScript und CGI verbinden
Listings
Listing 1: Web-Formular
Listing 2: Tabellenausgabe
Listing 3: Aufgeräumtes Formular
Listing 4: Datenbankanbindung
Listing 5: JavaScript in CGI-Skripts integrieren
Listing 6: Datenbankabfrage mit Bildausgabe

Gerald Richter
Apache – Indianer von innen
Authentifizierung und Autorisierung
Clientadresse statt Proxy-IP
Pfade automatisch anpassen
Voraussetzungen und Installation
Request-Phasen und Perl-Handler
Listings
Listing 1: ProxyAddr.pm
Listing 2: PerlRewrite.pm
Listing 3: PerlAlias.pm
Listing 4: Hello World

Michael Schilli
HTML-Dokumente in einem Rutsch laden
HTML-Dokumentation in PostScript wandeln
URLs per Kommandozeile und Datei
Im tar-Archiv bewahren
Listings
Listing 1: webgrab.pl

Michael Schilli
Datenbankanschluss mit CGI
Vorbereitungen
SQL-Anweisungen als Here-Document
CGI-Parameter analysieren
Listings
Listing 1: Inventur via DBI

Gerald Richter
Kompakte Datenbankabfragen mit Embperl
SELECT-Befehle per Automatik
Tabellen verbinden
Beliebige Datenbankzugriffe mit Execute()
Listings
Listing 1: 30 Einträge anzeigen
Listing 2: Joins ohne SQL-Programmierung
Listing 3: Datenbankpflege
Installation
Konfiguration
Ausführen als CGI-Skript

Aria Behbehani · Ramon Wartala
VRML-Welten dynamisch generieren
Per Hyperlink zum Original
Menü per Billboard-Knoten
Prototypen und Animationen
Listings
Listing 1: VRGallery.pl
VRML-Ansichten

Teil 4
Web-Anwendungen

Michael Schilli
Webseiten kontrollieren
Hauptarbeit erledigt libwww
Header-Infos minimieren Netzverkehr
Listings
Listing 1: urlchk.pl

Michael Schilli
Newsgroups nach Schlagworten durchsuchen
Objekte für Netzaufgaben aus libnet
Hashes für assoziative Zugriffe
Suche im Subject mit regulären Ausdrücken
Listings
Listing 1: chknews.pl

Daniel Naber
Modemübertragung von Webseiten lokal simulieren
Nicht für jedes Bild neu verbinden
Redirects durch »/« vermeiden
Mehrzeilige Tags dank /s
Ungepufferte Übertragung des nph-Skripts
Listings
Listing 1: slowdown.html
Listing 2: slowdown.pl

Michael Schilli
Anzeigen schalten im Web
HTML ist nicht geeignet
Haltbarer Zähler per Datei
Linkklicks mit CGI zählen
Einheitliches Format für Log-Dateien
CGI-Umleitung per PATH_INFO
Listings
Listing 1: adserver.pl ()
Listing 2: test.shtml
Listing 3: go.cgi
Server Side Includes aktivieren
Installation
Webalizer-Installation

André Schmidt
Flexibles Feedback-Formular
Einfache Syntax für leichtes Ändern
.ini-Datei im Windows-Stil
Listings
Listing 1: INI-Datei
Listing 2: HTML-Formular
Listing 3: mailer.fpl

Axel Köhler
Inhaltsverzeichnis für HTML-Dateien
Perls Variante von find
Indexdateien an den Anfang
Listings
Listing 1: Inhaltsverzeichnis für HTML-Dateien
Listing 2: Sortierroutine

Autorenverzeichnis

Literaturverzeichnis

Index