| 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.
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:
- In Perl und wie auch in C/C++ wird jede Anweisung mit einem ";"
abgeschlossen.
- Kommentare werden mit einem "#" eingeleitet.
- Ein Zeilenumbruch erfolgt mit der Eingabe von "\n".
- Die Funktion "print "Text\n";" ist die Standardfunktion zur
Ausgabe von Daten in Perl. Mit diesem Befehl werden die Daten an den Browser des Surfers gesendet.
- Der Kommentar "#!/usr/bin/perl" gibt den Pfad zu Perl an. Dieser
Pfad kann sich zu System zu System ändern. Unter Linux ist der Standard
"#!/usr/bin/perl" und unter Unix
"#!/usr/local/bin/perl".
- Bevor Sie anfangen, den HTML-Code an den Browser zu senden, müssen Sie diesem mitteilen, das nun Daten
vom Typ HTML kommen. Dies erreichen Sie durch
"print "Content-type: text/html\n\n";".
- Achtung: Perlskripte unterscheiden zwischen Groß- und Kleinschreibung, seien Sie also vorsichtig bei
Befehlen und Variablennamen!
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.
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: </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: </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 ">
<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.
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:
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:
| 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. |