Moin Chris!
Ich habe in der cgibin ein Unterverzeichnis angelegt und die Datei Lite.pm hineinkkopiert.
Du solltest in dem Unterverzeichnis noch ein Verzeichnis "Mime" anlegen und dort dann die Datei hinkopieren.
Wenn ich das Modul jetzt mit require ".library/Lite.pm" lade, kann ich es problemlos benutzen. Mit
»»
use lib "./library/";
use Mime::Lite;
»»
erreichte ich nur die Fehlermeldung "Can't locate Mime/Lite.pm in @INC at ...".
Ja, denn diese Zeile ist (ungefaehr) gleichbedeutend mit
require "Mime/Lite.pm";
Da es diesen Pfad bei Dir aber nicht gibt (weil Du ja das Verzeichnis Mime nicht angelegt hattest), kann die Datei nicht gefunden werden. Aber bitte verwende jetzt nicht einfach
use Lite;
! Die Datei wuerde dann zwar gefunden werden, aber jenachdem, wie das Modul programmiert ist, kann Sie nicht richtig verarbeitet werden, da dann erwartet wird, dass es das Modul "Lite" ist, nicht "Mime::Lite".
- Wann reicht require aus? Kann es zu Problemen kommen? (Immerhin laeuft es ja so!)
Du kannst hinter require genauso wie hinter use einfach den puren Modulnamen angeben. require sucht dann aber in derselben Weise nach der Datei Mime/Lite.pm. Dahingehend besteht also kein Unterschied. use wird aber im Gegensatz zu require immer gleich zu Beginn des Scripts ausgefuehrt, noch vor der ersten "richtigen" Codezeile. (Man sagt auch "zur Compilierzeit".) Ausserdem beinhaltet use auch noch automatisch den Aufruf
import Mime::Lite;
Was das bedeutet, will ich jetzt aber mal nicht erklaeren, das steht naemlich auch alles in
perldoc perlfunc
bei require, use und import.
- was ist falsch an meinem "use lib ..." das ich in einem frueheren Thread als "Loesung" gefunden habe.
Daran ist nichts falsch.
HTH && So long
P.S. In Berlin scheint jetzt wieder die Sonne! Naja, das SelfTreffen ist ja nun auch vorbei ... ;-)