Mein Variomedia

Hier können Sie sich im Kundenmenü einloggen.




Passwort vergessen?

Weitere Logins

Sie befinden sich hier: variomedia.de > Support > Häufige Fragen (FAQ) > Webanwendungen und Datenbanken > Perl

Fragen und Antworten

Wie binde ich eigene Perl-Module ein?

Perl-Module erweitern den Grundumfang der Programmiersprache um viele nützliche Bibliotheken und Funktionen. Die gängigsten Module, wie z.B. für den Zugriff auf Ihre MySQL-Datenbank (DBD::Mysql) oder für das Erzeugen und die Auswertung von HTML-Formularen (CGI) stehen bereits standardmäßig bei uns zur Verfügung.

Es gibt allerdings auch viele Module, die zwar bereits sinnvolle Zwecke erfüllen, sich jedoch noch in der Entwicklung befinden und sich dadurch Funktionsumfang und Schnittstellen stetig ändern. Würden Sie von solchen Modulen in Ihren Perl-Anwendungen Gebrauch machen, so könnte es sein, daß Ihre Anwendung mit einer neueren Version des Moduls nicht mehr funktioniert. Darum ist es sinnvoller, diese Module in Ihrem Home-Verzeichnis zu installieren, statt ein von uns auf dem Server installiertes zu nutzen. Dabei haben Sie selbst die Kontrolle darüber, wann ein Modul aktualisiert wird.

Voraussetzungen
Im Folgenden werden wir an einem Beispiel erklären, wie man ein Perl-Modul installiert und wie man es in seine Perl-Anwendungen einbindet. Alles was Sie dazu benötigen ist einen SSH-Account (erst ab dem WebHosting.500-Paket möglich, muss außerdem im Kundenmenü freigeschaltet werden) und einen SSH-Client, mit dem Sie auf unserem Server aus der Ferne arbeiten können (wir verwenden dazu PuTTY).

Das richtige Modul finden und herunterladen
Über die Suchfunktion des CPAN lassen sich Perl-Module schnell und unkompliziert finden. Stellen wir uns vor, Sie möchten auf eine dbase-Datei so komfortabel wie auf eine MySQL-Datenbank zugreifen. Eine Suche nach "dbase" bringt in diesem Fall leider nicht das gewünschte Ergebnis, wohl aber "xbase" oder "dbf". Es sollte jetzt das Modul "DBD::XBase" angezeigt werden. Klicken Sie nun entweder auf "Download" um das Modul lokal zu speichern und anschließend auf Ihren FTP-Account hochzuladen, oder kopieren Sie sich die Download-Adresse, loggen Sie sich mit PuTTY (oder einem anderen SSH-Client) in Ihren SSH-Account ein und starten dort
wget http://search.cpan.org/CPAN/authors/id/J/JA/JANPAZ/DBD-XBase-0.241.tar.gz
Nun sollte sich eine Datei namens DBD-XBase-0.241.tar.gz im aktuellen Verzeichnis befinden. Wir werden uns im weiteren Verlauf auf die Version 0.241 stützen, bitte beachten Sie jedoch, daß sich die Verzeichnisse entsprechend ändern, wenn Sie eine andere (vermutlich neuere) Version benutzen. Sie sollten immer die neueste Version herunterladen, sofern dort nicht in roter Fettschrift der Hinweis "** DEVELOPER RELEASE **" erscheint. In diesem Fall wählen Sie bitte eine ältere Version aus.

Wie installiere ich das Modul?
Zuerst muß die Datei ausgepackt und in das Verzeichnis des Moduls gewechselt werden. Dies erfolgt mit

tar xvfz DBD-XBase-0.241.tar.gz
cd DBD-XBase-0.241

Weiter gehts mit folgenden Schritten, mit denen so ziemlich jedes Perl-Modul installiert wird. Beachten Sie hierbei jedoch den Prefix! Nur dadurch wird das Modul nicht auf dem Server für alle Kunden (wozu Sie ohnehin nicht die notwendigen Rechte hätten), sondern nur in Ihrem Account installiert. Ersetzen Sie u2222 bitte durch Ihre eigene FTP-Kennung.

perl Makefile.PL PREFIX=/homepages/u2222
make
make test
make install

Eventuell erhalten Sie dabei folgenden Hinweis:

/bin/sh: /perllocal.pod: Permission denied
make: [doc_site_install] Error 1 (ignored)

Diesen können Sie getrost übersehen.

Wie binde ich das Modul in eine Perl-Anwendung ein?
Perl-Anwendungen (oft nur kurz Perl-Scripts genannt) enthalten üblicherweise folgende Zeile am Anfang der Datei:

#!/usr/bin/perl
Wollen Sie nun Ihr eigenes Modul nutzen, so müssen Sie Perl sagen, wo es danach suchen soll. Ersetzen Sie darum die erste Zeile durch

#!/usr/bin/perl -I/homepages/u2222
Etwas übersichtlicher - gerade wenn Sie Perl mehr als ein Verzeichnis mitteilen möchten - sieht es aus, wenn Sie stattdessen folgendes schreiben:

#!/usr/bin/perl
use lib '/homepages/u2222';

Für jedes weitere Verzeichnis fügen Sie dann einfach ein weiteres

use lib '...'
hinzu. Von jetzt an können Sie mit dem Modul so arbeiten, als wäre es auf dem Server für alle Kunden installiert.

Viele weitere, nützliche Module finden Sie im Comprehensive Perl Archive Network (CPAN).

Links


CGI
Perl