Perl-Module
Florian
- perl
Hallo zusammen,
ich habe folgendes Problem:
Für ein CGI-Script bräuchte ich die Module LWP::UserAgent und HTTP::Request. Ich habe sie schon bei CPAN heruntergeladen, aber jetzt weiß ich nicht, in welches Verzeichnis ich die .pm-Dateien kopieren soll, damit die Module vom CGI-Script gefunden werden, welche Zugriffsrechte ich brauche, etc.
Interessant wäre natürlich erst einmal, ob ich überhaupt zusätzliche Module installieren kann, die vom Provider nicht standardmäßig installiert sind (telnet-Zugriff ist leider auch nicht möglich).
Das @INC-Array hat folgenden Inhalt:
/usr/libdata/perl/5.00503/mach
/usr/libdata/perl/5.00503
/usr/local/lib/perl5/site_perl/5.005/i386-freebsd
/usr/local/lib/perl5/site_perl/5.005
Viele Grüße,
Florian.
Hallo,
LWP sollte eigentlich bei Deiner PERL-Version dabei sein.
Ansonsten:
Zum Installieren von Modulen brauchts normalerweise Root(Admin)rechte, also Plan A: Wende Dich an Deinen Provider...
Plan B: Es gibt mit dem Pragma "lib" die Möglichkeit, selbst ein Modul einzubinden:
use lib 'pfad/zu/dem/modul';
Beispielsweise habe ich auf meinem Server um das Modul "Mail::Sender" zu verwenden im Verzeichnis /cgi-bin einen weiteren Ordner /Mail erstellt und dort hinein die Datei "Sender.pm" kopiert ... geht dann so:
use lib 'Mail';
use Mail::Sender;
Viele Grüße, Rolf
PS: Mit Telnet-Zugang könntest Du das Vorhandensein eines Moduls auf einer Zeile testen:
perl -e 'use Modul'
Wenn es nicht da ist, meckert PERL, dass es in @INC nicht gefunden wird. Findige Hacker pushen einfach an @INC den Pfad zum eigenen Modul dran ;-) sauberer ist es jedoch das Pragma lib zu verwenden, s.o.
Ansonsten:
Zum Installieren von Modulen brauchts normalerweise Root(Admin)rechte, also Plan A: Wende Dich an Deinen Provider...Plan B: Es gibt mit dem Pragma "lib" die Möglichkeit, selbst ein Modul einzubinden:
Hallo Rolf,
vielen Dank für die Antwort.
Module mit 'use lib' einzubinden, habe ich gerade versucht, scheint aber nicht zu funktionieren. Ich versuche es aber weiter. Wenn nichts hilft, muss ich eben zu Plan A übergehen...
Florian.
Hi,
Module mit 'use lib' einzubinden, habe ich gerade versucht, scheint aber nicht zu funktionieren.
erst use lib, dann use Modulname.
Aber mal nebenbei: Wenn Dein Provider die von Dir genannten Module nicht installiert hat, ist das ein ziemlich schwaches Bild... :-)
Cheatah