CGI & Perl – Tutorial, Tipps & Tricks
Perl zählt als die beliebteste Programmiersprache für das Common Gateway Interface ( CGI ) zu den am weitesten verbreiteten serverseitigen Skriptsprachen. Sie besitzt eine große Fülle von Funktionen und Modulen zur Verfügung und stellt somit eine Spieloase für Programmierer dar.
Was ist CGI?
Das CGI (Common Gateway Interface) ist im weitesten Sinne ein standard bzw. eine Norm für eine serverseitige Programmierschnittstelle, die es beispielsweise ebenso wie PHP erlaubt, die vom Server zu übertragenden Inhalte nachhaltig zu verändern. Dies ist möglich, da derartige Scripts stets ausgeführt werden, bevor der Server Daten an der Browser übermittelt. CGI ist also keine Skriptsprache sondern ein Protokoll. CGI-Skripte können im Prinzip in jeder Programmiersprache verfasst werden, welche das Lesen vonSTDIN
und das Schreiben auf STOUT
sowie das Lesen von Umgebungsvariablen (Environment variables) ermöglichen.So stellen dafür geeignete Skriptsprachen wie z.B. das beliebteste und universell einsetzbare Perl mit seiner Vielzahl von Funktionen und Modulen dem Programmierer Möglichkeiten bereit, die nahezu unerschöpflich sind.
Was kann CGI?
Aufgrund der Tatsache, dass ein CGI-basierendes Skript stets auf dem Server und nicht clientseitig ausgeführt wird, ergeben sich Möglichkeiten, welche mit clientseitigen Skriptsprachen nicht realisierbar sind. So ist es beispielsweise möglich, Dateien auf Servern zu verändern bzw. zu erstellen oder auf Datenbanken zuzugreifen. Derartig modifizierbare Inhalte sind Grundlage für die meisten Bedürfnisse moderner Websites mit interaktiven Elementen wie beispielsweise Foren, Gästebücher oder Besucherzählern.Was kann CGI nicht?
Die oben erläuterten Sachverhalte zeigen gleichzeitig die Schwächen von CGi-basierenden Skriptsprachen wie Perl auf: Sie sind auf das "Zusammenspiel" mit clientseitigen Skriptsprachen angewiesen, ohne die sie Informationen von Servern in keiner vernünftigen Art und Weise für den Clienten aufbereiten könnten. Eben weil sie serverseitig und vor allem vor der Ausgabe an den Browser ausgeführt werden, lassen sich mit CGI keine Objekte im Browserfenster des Besuchers animieren, dynamische Menüs oder andere Sachen, die mit Technologien wie DHTML möglich sind, erzeugen.Die Entstehung von CGI und Perl
CGI und Perl werden heute fälschlicherweise oftmals im gleichen Atemzug genannt, obwohl dafür zweckmäßig als auch historisch kein unbedingter Zusammenhang besteht.Die Entstehung von CGI
Nachdem die HTTP-Spezifikation entwickelt wurde, welche es erstmals ermöglichte, Daten zur Anzeige als Website zu bringen, wurde schnell klar, dass dies nicht ausreichend ist, um die schnell steigenden Bedürfnisse zu befriedigen. Man musste die Eigenschaft eines Servers herausbilden, Clienten zu erlauben auch Daten auf ihm speichern und modifizieren zu können. Aus dieser Idee heraus entstand das Common Gateway Interface, das sich bis heute behaupten konnte.Die Entstehung von Perl
Die Skriptsprache Perl (practical extraction and report language) wurde 1987 von Larry Wall entwickelt. Die Bezeichnung der Sprache deutet bereits auf den ursprünglichen Zweck, nämlich dem Extrahieren von Informationen aus Dateien und der Aufbereitung dieser in einem "Report", hin. Bis dato vorhandene Programmiersprachen wie UNIX konnten aufgrund mangelnder Flexibilität diesen Anforderungen nur in Ansätzen gerecht werden.Perl erfreute sich sofort nach seiner Veröffentlichung großer Beliebtheit und wurde aufgrund wiederum rasant steigender Anforderungen an die Programmiersprache auch von anderen Programmierern ständig weiterentwickelt. Dieser Prozess hält bis heute an.
Alternativen zu CGI/Perl
Im Laufe der Zeit entstanden natürlich auch Alternativen zu CGI-basierenden Skriptsprachen. Der Fokus bei der (Weiter-)Entwicklung von Perl lag stets auf dem praktischen Nutzen, wodurch eine Vielzahl von Modulen entstand, welche einen schwer erfassbaren Umfang von CGI bedeuteten. Als Alternativen zu Perl wären in diesem Zusammenhang PHP und ASP zu nennen, welche in ihrer Handhabung benutzerfreundlicher - weil einfacher - sind. PHP drängte Perl in den letzten Jahren zwar stark zurück, war bisher aber nicht in der Lage, Perl vollständig zu verdrängen, was nicht zuletzt an der universellen Einsetzbarkeit von Perl liegt.Vorbereitungen und Grundsätzliches
Es bedarf nicht viel, um das CGI auf dem heimischen Rechner zu installieren und in Perl programmieren zu können. Zudem ist die Anschaffung der benötigten Programme völlig kostenlos. Aber sehen Sie selbst …
Syntax
Die Syntax einer Programmiersprache ist im weiteren Sinne der formale Aufbau des Programmtexts, welcher stets einem bestimmten Schema folgt. Perl weist dabei eine sehr eigenwillige Syntax auf, welche auf dem ersten Blick eher an eine Ansammlung kryptischer Zeichen erinnert. Ein formal ordentlicher Programmierstil ist demnach besonders in Perl eine der wichtigsten Voraussetzungen, um dem Codeverlauf folgen zu können.
- Anweisungen
- Anweisungsblöcke
- Kommentare
- Besondere Hinweise zur Syntax
- CGI-Umgebungsvariablen
- Übersicht wichtiger CGI-Umgebungsvariablen
Variablen und Konstanten
Perl stellt ein vollständiges Repertoire an Variablentypen zur Verfügung, mithilfe derer sich sehr umfangreiche und variable Datenstrukturen erschaffen lassen. Darüber hinaus kann Perl diese Variablentypen in verschiedenen Kontexten bewerten, was dem Nutzer der Programmiersprache schnell die großen Vorzüge und Stärken von Perl offenbart.
- Gültigkeitsbereiche von Variablen (beschränken)
- Variablentypen
- Zahlen (integer und floating-point) – Konstante
- Zeichenketten (strings) – Konstante
- Listen bzw. Arrays
- Mehrdimensionale Arrays
- Assoziative Arrays (Hashes)
- Mehrdimensionale Hashes
- Zeiger/Referenzen auf die einzelnen Variablentypen
- Referenzen auf einfache Variablen (Skalare) erzeugen
- Referenzen auf Arrays erzeugen
- Referenzen auf Hashes erzeugen
- Spezielle Variablen in Perl
- Die Variable $_
- Weitere spezielle Variablen von Wichtigkeit
Operatoren
In Perl gibt es Operatoren für alle Ansprüche. Einige können in einer verkürzten Schreibweise notiert werden, um das gesamte Script übersichtlicher erscheinen zu lassen.
- Zuweisung
- Arithmetische Operatoren
- Vergleichsoperatoren
- Logische Operatoren
- Verneinung
- Verknüpfung mit und
- Verknüpfung mit oder (inklusiv)
- Verknüpfung mit oder (exklusiv)
- Spezielle Operatoren für Zeichenketten
- Verknüpfung von Zeichenketten
- Vervielfachung von Zeichenketten
- Prioritäten von Operatoren
Kontrollstrukturen
Die Kontrollstrukturen in Perl wie bedingte Anweisungen und Schleifen ähneln im Großen und Ganzen denen anderer Programmiersprachen. Darüber hinaus existieren aber auch besondere Konstrukte mit einfacher Handhabung.
- Bedingte Anweisungen
- Vorangestellte Bedingungen mit if ,else, elsif und unless
- Nachgestellte Bedingungen mit if und unless
- Alternative zur einfachen if-else-Konstruktion
- Schleifen
- while-Schleifen
- until-Schleifen
- do-while und do-until Schleifen
- for-Schleifen
- foreach-Schleifen
Programmsteuerung
Durch die Verwendung einiger Sprungbefehle kann man ein Script sehr effektiv flexibilisieren. Welche es wofür gibt, zeigt dieses Kapitel.
Subroutinen
Eine Subroutine in Perl ist ein Unterprogramm, welches selbst Scriptteile enthält und von einer beliebigen Stelle im Script aufgerufen werden kann. Dadurch kann eine mehrfache Notation derselben oder im Wesentlichen identischen Scriptpassage vermieden werden, was das Script um ein Vielfaches übersichtlicher erscheinen lässt.
- Subroutinen definieren
- Subroutinen aufrufen
- Ohne Parameter
- Mit Parameter
- Rückgabewerte von Subroutinen
- Referenzen auf Subroutinen erzeugen
Wichtige Funktionen für Variablentypen
Für die einzelnen Variablentypen existieren in Perl spezifische Funktionen, welche der Manipulation der Variablen dienen oder Information zu ihnen bereithalten. Mithilfe dieser Funktionen kann man die entsprechenden Variablen sehr effektiv in Szene setzen.
- Arithmetische Funktionen
- Stringspezifische Funktionen
- Array- bzw. listenspezifische Funktionen
- Hashspezifische Funktionen
Datenübertragung zwischen HTML und CGI
Eine der wichtigsten Aufgaben von CGI ist die Datenverarbeitung von Nutzereingaben – also das Auswerten von HTML-Formularen. Andersherum müssen die Verarbeiteten Daten natürlich auch wieder an den Benutzer ausgegeben werden. Beides zeigen wir Ihnen hier.
- HTML-Formulare und Querystrings
- Das Zusammenspiel von HTML-Formularen und CGI
- Die GET-Methode
- Die POST-Methode
- Das Kodierungsprinzip
- Daten an den Browser ausgeben – Ein erstes Script
- HTTP-Header ausgeben
- Tokens
Reguläre Ausdrücke
Eine der größten Stärken von Perl liegt in den Verwendungsmöglichkeiten der so genannten regulären Ausdrücke (regular expressions) begründet. Sie sind im Großen und Ganzen genau definierbare und aufgrund der zahlreichen Modifikationsmöglichkeiten ziemlich vielseitig einsetzbare Suchmuster, mit deren Hilfe man bestimmte flexible Inhalte in beispielsweise Zeichenketten finden und durch andere ersetzen kann.
- Transliteration – Alternatives Suchen, Ersetzen & Zählen von einzelnen Zeichen
- Suchen und Ersetzen mithilfe regulärer Ausdrücke
- Einfache reguläre Ausdrücke – Bestimmte Zeichen suchen und ersetzen
- Suchoptionen
- Anker in regulären Ausdrücken
- Zeichenklassen
- Reguläre Ausdrücke mit Alternativen
- Teilausdrücke des Suchmusters speichern
- Sonderzeichen in regulären Ausdrücken
- Prioritäten in regulären Ausdrücken
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ CGI Vorbereitungen & Grundsätzliches
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project