Perl - und das Web wird interaktiv


 Zum vorherigen AbschnittZum nächsten Abschnitt Perl: Die universale Skriptsprache
Perl-Kamel, das Maskottchen von Perl   Perl - Die universale Scriptsprache für Systemabläufe unter Unix/Linux sowie für das Web als CGI-Sprache neben kommerziellen Standards. Der klare Vorteil von Perl ist, dass Perl sehr stark verbreitet ist und man unabhängig von Firmen ist, denn Perl ist Open Source (frei und für jedermann verfügbar). Des Weiteren ist Perl auch sehr einfach und leicht durchschaubar, sodass auch Anfänger bei der Programmierung mit Perl im Gegensatz zu anderen Webprogrammiersprachen wie z.B. JavaScript keine Probleme mit Perl haben.

Alles, was in irgendeiner Weise interaktiv ist im Web (Foren, Gästebücher, Chats, Counter, ...) wird ausschließlich mit Websprachen wie Perl realisiert.
 Zum vorherigen AbschnittZum nächsten Abschnitt Allgemeines zu Perl
Was ist Perl?
Perl ist eine serverbasierende Skriptsprache, die sehr stark verbreitet und beliebt ist. Serverbasierend bedeutet, dass die Skripte auf dem Webserver ausgeführt werden, bevor sie an den Browser geschickt werden. Der Gegensatz zu serverbasierenden Scriptsprachen ist Java- sowie VB-Script, welche der Browser lokal auf dem Computer ausführt. Im Unterschied zu ASP von Microsoft ist Perl auf sehr vielen Plattformen verfügbar und schnell erlernbar. Die Einsatzmöglichkeiten von Perl sind ebenfalls sehr groß. Mit Perl kann man unter Unix/Linux kleine Systemtools schreiben oder einfache Steuerskripte, um bestimmte Programme zu starten.
Perl ist beliebig erweiterbar. Mit Hilfe von Modulen kann man Perl jede Menge beibringen. Auf www.cpan.org gibt es unter "Modules" eine grosse Anzahl von mehr oder auch weniger nützlichen Modulen für Perl. Interessant für Linux-Programmierer sind die GTK- und TK-Module, mit denen man ganz einfach (einfach ist relativ ;-) ) Programme mit grafischer Oberfläche in der Programmiersprache Perl für Linux erstellen kann.

Etwas über die Geschichte von Perl
Perl wurde von Larry Wall geschaffen, um einfache Systemabläufe zu automatisieren, welche normalerweise sehr aufwendig von Hand zu lösen sind. Wall entwarf zu diesem Zweck eine neue Skriptsprache und gab sie dann über das Internet frei, weil er dachte (und das zu Recht), auch anderen Leuten könnte Perl nützlich sein. Im Geiste der Open-Source-Programmierung verbesserten und erweiterten andere Programmierer Perl ständig. Dadurch wandelte sich Perl von einer simplen Skriptsprache zu einer mächtigen Programmiersprache, die sich als "Visual Basic unter Linux/Unix" verstehen kann.

Altnernativen zu Perl
Natürlich ist Perl ja nicht die einzige Scriptsprache fürs Web oder für Unix. Es gibt noch viele andere. Im Web sticht besonders PHP heraus, welche selber auch eine Open Source Scriptsprache ist. PHP ist ähnlich wie Perl sehr leicht zu erlernen und beliebt. Doch was besser ist, weiss niemand genau, denn beide haben ihre Vor - und Nachteile. Im Internet gab es schon heftige Flamewars, was jetzt nun besser sei. Doch Sie können Sich nun selbst ein Bild machen, indem Sie PHP von www.php.org downloaden. Natürlich hat Microsoft selbst auch einen "Standard" geschaffen, nämlich die die ISAPI-Schnittstelle zu der auch ASP (Active Server Pages) gehört. Wie Sie vermuten können, geht dies natürlich nur auf dem Microsoft IIS Server, während man mit einwenig Nachhilfe Perl auch überreden kann, auf Microsoft Web-Servern zu laufen.

Installieren von Perl
Installation unter Linux
Auf einem Standard-Linux-System haben Sie gute Chancen, dass Perl schon installiert ist. Wechseln Sie zur Kommandozeile oder in ein Terminal und geben Sie das Kommando "which perl" ein. Falls Sie nicht wissen was ein Terminal oder die Kommandozeile von Linux ist, dann verweisen wir auf die Linux-Sektion von SHADOWare.de, welche Sie hier finden können.

outpost-coder:~ # which perl
/usr/bin/perl
outpost-coder:~ #

Sollten Sie eine Ausgabe wie hier im Beispiel erhalten, ist Perl korrekt installiert und der Pfad in der $PATH-Variable eingetragen. Der Perl-Interpreter läßt sich in der Kommandozeile durch Eingabe von "perl" (gefolgt vom Skriptnamen) starten.

Für den Fall, dass das Kommando "which" keine Ausgabe liefert, sollten Sie das Installationsprogramm bzw. die Paketverwaltung Ihrer Linux-Distribution aufrufen. Suchen Sie hier nach den Perl-Packages und installieren Sie sie. Nach der Installation sollte das "which"-Kommando nun eine Ausgabe mit dem kompletten Perlpfad liefern, welchen Sie sich für die Verwendung von Perlskripten merken sollten.

Installation unter Windows
Falls Sie unter Windows Perl einsetzen wollen, ist leider etwas mehr Arbeit notwendig, aber auch dies ist möglich.
Gehen Sie auf www.activestate.com und laden Sie sich dort "ActivePerl 5.6" herunter. Dieses Programm installiert Perl auf Ihrem Windows-PC, egal ob NT (auch 2000) oder 9x (eingeschlossen ME).

Hier sei nur nochmal der Vollständigkeit halber erwähnt, dass man die Perlskripte auch in der DOS-Kommandozeile die Perlskripte wie unter Linux/Unix mit "perl skriptname.pl" starten kann. Der Windows Explorer bietet jedoch noch mehr Komfort und führt diese nach der Installation von ActivePerl auch per Doppelklick aus.

Installation/Einsatz auf dem Webserver
Damit Sie Perlskripte auf Ihrem Webserver ausführen können, muss ihr Webspace-Anbieter dies unterstützen. Leider wird dies bei vielen Gratis-Anbietern nicht standardmäßig unterstützt, da der Provider immer ein kleines Risiko eingeht, wenn er das Ausführen von Skripten zulässt (Viren, Auslastung etc.).
Aber auch dafür gibt es natürlich spezielle Anbieter, wie z.B. www.virtualave.net. Um genaueres über den Einsatz von Perlskripten auf Ihrem Webserver zu erfahren, schlagen Sie hier in SelfHTML, der einzigartigen Dokumentation von Stefan Münz, nach.

 Zum vorherigen AbschnittZum nächsten Abschnitt Das erste Perlskript
Wie vorhin schon erwähnt, ist das erste Perlskript sehr schnell erstellt und auch sehr einsichtlich. Es wird nun hier ein kleines Hallo-Welt-Skript erstellt.

Perlskripte können Sie (wie auch HTML-Dateien) ganz einfach und in jedem Texteditor erstellen, Sie benötigen keine zusätzliche Software zum kompilieren. Wir empfehlen wie so oft den Freeware-Editor TextPad, da er auch bestimmte Funktionen zum Einfärben des Perl-Codes anbietet und so alles sehr viel übersichtlicher gestaltet. Gespeichert werden Perlskripte generell mit der Dateiendung ".pl".
Im Gegensatz zu HTML-Dateien können die Surfer den Sourcecode Ihrer Perl-Dateien jedoch nicht einsehen, weshalb Sie keine Angst vor eventuellen Sourcecode-Dieben haben müssen. Außerdem ist so eine höhere Sicherheit gewährleistet, da es weitaus einfacher ist, etwas zu hacken, von dem man weiß, wie es funktioniert, als etwas, von dem man es nicht weiß...

Doch kommen wir nun zu unserem ersten Skript. Sehen Sie sich den Code einfach einmal ein paar Minuten an, und versuchen Sie, ihn zu analysieren. Ihnen werden sicher einige Regeln auffallen, nach denen ein typisches Perlskript aufgebaut ist. Die wichtigsten dieser Regeln finden Sie auch noch einmal unter dem Sourcecode-Listing.

#!/usr/bin/perl
#
# Mein erstes Perlskript mit Hilfe von SHADOWare.de
#
# Ich bin ein Kommentar. Ich werde vom Interpreter ignoriert.
# Hier können Sie Copyright-Informationen usw. hinschreiben.
# Doch Perl wird diese Bereiche immer ignorieren.

print "Content-type: text/html\n\n";

print "<html><body>\n";
print "<b>Hallo!</b>\n";
print "<br><br>\n";
print "Ich bin ein Perlskript, welches mit Hilfe der Perl-Abteilung auf SHADOWare.de erstellt worden ist.\n";
print "</body></html>\n";

# Ende des Skripts

Wie das Skript aussieht, wenn Sie es ausführen, können Sie hier testen: helloworld.pl.

Wenn Sie das Perlskript ein wenig betrachtet haben, fallen Ihnen bestimmt einige Regeln auf:


Nun können Sie stolz auf sich sein, denn Sie haben soeben Ihr erstes Perlskript programmiert. Aber es macht normalerweise keinen Sinn, ein Perlskript für statische Informationen zu erstellen. Perl wird gebraucht, um Informationen aus Dateien, Datenbanken oder aus anderen Webseiten auszulesen und sie dann wiederzugeben sowie dabei eventuell noch zu formatieren. Ein gutes Beispiel ist der LinkChecker auf SHADOWare.de, welcher auch auf Perl basiert und einfach einen internen (für den Surfer natürlich unsichtbaren) Browser startet, der die HTML Datei der eingetippte URL temporär herunterlädt, sie dann nach weiteren Links durchsucht und diese auf ihre Existenz überprüft.

 Zum vorherigen AbschnittZum nächsten Abschnitt Perlskripte in der Praxis
Natürlich können Sie mit dem obigen Perlskripts noch nichts anfangen. Deswegen folgen hier nun einige Praxisbeispiele, die Sie in Ihre Homepage einbauen können. Sie können (aber müssen nicht), einen Verweis einbauen, dass diese Script von SHADOWare.de kommen. Aber es ist freiwillig. Trotzdem danken wir Ihnen, wenn Sie einen Link auf SHADOWare.de setzen.

Newsticker

Hier stellen wir Ihnen eine Variante vor, mit der es sehr viel leichter fällt, News zu verwalten, als mit normalen HTML-Seiten:

newsticker.pl (so sieht es aus):

#!/usr/bin/perl
#
# Newsticker-Perlskript

print "Content-type: text/html\n\n";

print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>Newsticker-Perlskript</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";

print "<i>Newsticker</i><br><hr noshade size=1><br>\n";

open(NEWSFILE, "<news.txt") || die "Newsdatei wurde nicht gefunden. Bitte benachrichtigen Sie webmaster\@domain.de.\n";
@file = <NEWSFILE>;
print "<ul>\n";

for(@file)
{
   print "<li>", $_ , "</li>\n";
}
print "</ul>\n";

print "<hr noshade size=1><i>Ende des Newstickers</i><br>\n";
print "</BODY>\n";
print "</HTML>\n";

# Ende des Skripts

Das Newsticker-Skript ist sehr simpel aufgebaut. Sie müssen nur noch eine Textdatei (news.txt) im selben Verzeichnis auf dem Server anzulegen, welche die News enthält. Sie müssen die News durch Zeilenumbrüche trennen. Der Vorteil gegenüber statischen HTML-Seiten: Wenn es jetzt neue News gibt, müssen Sie nicht mehr eine gesamte HTML-Datei editieren, sondern einfach die Datei "news.txt" um einen Eintrag erweitern.


Formmailer

Im Internet gibt es massenhaft Angebote von Formailern. Aber die meisten Anbieter platzieren frech noch einen Werbebanner oder einen Link irgendwo mitten im Blickfeld des Surfers. Es wird nun Zeit, dass Sie Ihr eigenes Formailerskript erstellen. Dafür sind eine HTML-Datei (formailer.html) und das Perlskript "formmailer.pl" nötig.

formmailer.pl

#!/usr/bin/perl
#
# Formailerscript
$sendmail = "/usr/lib/sendmail";

use CGI;

$query = new CGI;

$mailto = $query->param('mailto');
$thxpage = $query->param('return');
$subject = $query->param('subject');
$kommentar = $query->param('kommentar');
$name = $query->param('name');
$email = $query->param('email');

open(MAIL,"|$sendmail -t") || die "Sendmail konnte nicht gestartet werden. Wenden Sie Sich an den lokalen Systemadministrator.\n";
print MAIL "From: formmailer@domain.de\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "Kommentar zu Ihrer Webseite\n\n";
print MAIL "Name; $name\n";
print MAIL "Email: $email\n";
print MAIL "$kommentar\n";
close(MAIL);

print "Location: $thxpage\n\n";

# Ende des Skripts

Wie Sie hier sehen können, ist das eigentliche Perlskript ziemlich simpel aufgebaut. Es nutzt das auf fast jedem Linux/Unix-Server installierte Programm "sendmail", um Ihnen die übergebenen Daten per eMail zukommen zu lassen. Nun folgt die HTML-Datei:

formmailer.html

<html>
<body>

<form action="http://www.domain.de/formmailer.pl" method="post">
<input type="hidden" name="mailto" value="mail@domain.de">
<input type="hidden" name="return" value="http://www.domain.de/danke.html">
<input type="hidden" name="subject" value="Feedback-Formular">

<table>
   <tr>
      <td><b>Name:&nbsp;</b></td>
      <td><input type="text" size="18" name="name"></td>
      <td><b>eMail-Adresse:</b></td>
      <td><input type="text" size="18" name="email"></td>
   </tr>
   <tr>
      <td valign="top"><b>Text:&nbsp;</b></td>
      <td valign="top" colspan="3">
         <textarea name="kommentar" rows="5" cols="58" wrap="virtual"></textarea>
         <p align="center"><input type="submit" value=" Absenden ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
         <input type="reset" value="Zurücksetzen"></p>
      </td>
   </tr>
</table>

</form>
</body>
</html>

Wichtig bei diesem HTML-Dokument sind vorallem die Angaben "mailto", "return" und "subject". Die Angabe "mailto" beschriebt die eMail-Adresse, an die die Eingaben des Surfers gesendet werden sollen, mit "return" geben Sie an, welche Seite nach dem Absenden des Formulars angezeigt werden soll. Der dritte Parameter ("subject") gibt an, welchen Betreff die Mail erhalten soll.

Auf die Dokumentation des HTML-Formulars wird hier bewusst verzichtet, da dies eine Perl- und keine HTML-Einführung ist. Falls Sie trotzdem Fragen zum HTML-Code haben, dann werden Sie bei SelfHTML sicher fündig.
Falls Sie mit Perlskripten kommunizieren möchten, kommen Sie von HTML gar nicht weg. Mit Hilfe des Befehls "<form>" können Sie ein HTML-Formular dazu bewegen, dass es die Eingaben an das genannte Perlskript schicken soll.

 Zum vorherigen AbschnittZum nächsten Abschnitt Fragen? Probleme? Weitere Informationen?
Natürlich ist Perl viel zu komplex, um hier auf alle Details einzugehen, davor gibt es schließlich eigene Webseiten. Der Sinn dieses kleinen Tutorials besteht ausschließlich darin, Ihnen genau zu zeigen, was Perl überhaupt ist und Sie auf den Geschmack zu brigen, es selber einmal auszuprobieren.

Wenn Ihr Wissendurst noch nicht gestillt ist, dann schauen Sie doch mal bei den Links vorbei, oder posten Sie im SHADOWare Forum Ihre Fragen oder Probleme. Natürlich ist der SHADOWare.de Community das Wort Perl auch nicht fremd. Daher gibt es wie bei der Linux-Sektion ein Expertenteam, an das Sie sich wenden können. Hier die Liste:

Ihr SHADOWare Perl-Expertenteam:
 Zum vorherigen AbschnittZum nächsten Abschnitt Links
Natürlich ist SHADOWare.de nicht die einzige Webseite, die sich mit Perl befasst. Es gibt noch viele andere Seiten im Web, die ebenfalls das Thema Perl ansprechen. Klicken Sie sich doch einfach mal durch:

 URL   Beschreibung 
 perl.org   Die offizelle Perlseite 
 perldoc.com   Riesige Dokumentation zu Perl und dessen Modulen 
 Realm of CGI   Eine der größeren deutschen Seiten zum Thema CGI und mit einem gut besuchten Onlineforum. 
 Perlmeister.com   Die persönliche Webseite eines echten Perlmeisters mit vielen Informationen zum Thema Perl auf Deutsch. 
 Perl-Snapshots   Viele monatlich erscheinende Beiträge vom Perlmeister zum Thema CGI und Perl, die online und im Linux-Magazin publiziert werden. 
 Comprehensive Perl Archive Network (CPAN)   Eine Seite mit sehr vielen Sachen zu Perl. Hier sind auch viele Perl-Module zu finden, mit denen Sie Ihre Perl-Skripte erweitern können. 
 SelfHTML - CGI/PERL   Natürlich hat auch SelfHTML eine sehr umfangreiche CGI/PERL-Abteilung. Besonders zu empfehlen für Einsteiger. 



Quellen: SHADOWare.de
Letzte Änderung: 02.03.2001
©2001 by SHADOWare, DaveTower & Thomas Bachem