Rolf: modul

Hi,

in meinem script verwende ich MIME::Lite, aber mein provider unterstützt dieses modul nicht. kann ich das modul einfach mit in das cgi-bin verzeichnis laden, und es dann einfach -wie wenn es intaliert wäre- benutzen, oder muss ich was in @INC (glaub ich nennt sich das) ändern?

Danke,
Rolf

  1. Hi Rolf!

    Eine gute Ressource dazu ist http://www.xwolf.com.

    Kurz:

    lade Modul in /cgi-bin/MeinModul
    Die Struktur sieht dann so aus:

    /cgi-bin/MeinModul/MIME.pm

    mit: use lib './MeinModul'; (./ steht fuer das aktuelle Verzeichnis, also cgi-bin)
    und: use MIME::Lite
    kannst Du es benutzen

    Gruß
    Thomas

    1. Hi,

      Eine gute Ressource dazu ist http://www.xwolf.com.

      oder aber auch

      perldoc perlmodinstall

      Kurz:

      Länger: Falsch ;-)

      lade Modul in /cgi-bin/MeinModul
      Die Struktur sieht dann so aus:

      /cgi-bin/MeinModul/MIME.pm

      Das Modul heißt MIME::Lite, nicht MIME. Die Struktur wäre also
      /cgi-bin/MIME/Lite.pm

      mit: use lib './MeinModul'; (./ steht fuer das aktuelle Verzeichnis, also cgi-bin)

      Nope. Erstens weißt Du im CGI-Kontext nicht, was '.' in diesem Moment zufällig ist, zweitens gibt es das Verzeichnis 'MeinModul' dort vermutlich nicht.

      use lib '/complete/path/to/your/dir/';

      und: use MIME::Lite
      kannst Du es benutzen

      Nicht unbedingt. Erstens halte ich das cgi-bin strukturell für ein eher ungeeignetes Verzeichnis, um Module einer Programmiersprache zu speichern, und zweitens könnte es nötig sein, Teile des Moduls zu kompilieren (weiß ich von MIME::Lite leider nicht).

      Wie ich schon sagte:

      perldoc perlmodinstall

      Cheatah

      1. Hi Cheatah!

        Das Modul heißt MIME::Lite, nicht MIME. Die Struktur wäre also
        /cgi-bin/MIME/Lite.pm

        Hatte ich keine Ahnung. Dachte eher an package MIME::Lite in MIME.pm. Danke fuer Info

        mit: use lib './MeinModul'; (./ steht fuer das aktuelle Verzeichnis, also cgi-bin)

        Nope. Erstens weißt Du im CGI-Kontext nicht, was '.' in diesem Moment zufällig ist, zweitens gibt es das Verzeichnis 'MeinModul' dort vermutlich nicht.

        use lib '/complete/path/to/your/dir/';

        Danke fuer die Info. Kann man evtl. auch den Pfad on runtime festlegen? (z.B. mit PATH_INFO)

        Gruß
        Thomas

        1. Hi,

          Das Modul heißt MIME::Lite, nicht MIME. Die Struktur wäre also
          /cgi-bin/MIME/Lite.pm
          Hatte ich keine Ahnung. Dachte eher an package MIME::Lite in MIME.pm. Danke fuer Info

          das _kann_ im Einzelfall insofern so sein, daß MIME im Script eingebunden wird und im folgenden auf MIME::Lite zugegriffen werden kann, weil MIME.pm dieses package definiert. Üblicherweise ist aber das '::' als '/' auf dem Filesystem zu sehen - insbesondere wenn es in der 'use'-Zeile steht.

          use lib '/complete/path/to/your/dir/';
          Danke fuer die Info. Kann man evtl. auch den Pfad on runtime festlegen? (z.B. mit PATH_INFO)

          PATH_INFO hat eine andere Bedeutung (zusätzlicher ans Script angehängter Pfad, z.B. http://cheatah.net/cgi-bin/env.pl/testpfad). Im System kann man aber durchaus der PATH-Variable weitere Verzeichnisse zuweisen - leider muß ich an dieser Stelle im Detail passen, befrage dazu bitte einen Unix-Experten :-)

          Cheatah

  2. Danke an euch beide!
    es funzt jetzt

    cu
    rolf