Bogus - ich trau mich wieder....: Wie kann ich pfadangaben zu perl-modulen machen?

hallo leute,

ich möchte mich bei allen wirklich entschuldigen!
ich war ja teilweise (laut stefan) mit ein grund warum das forum geschlossen wurde. da ich diese ganzen diskusionen um das forum selbst, entfacht habe.
*PS: schreibt mir dazu bitte keine sinnlosen antworten*

nun zum eigentlichen thema:

ich benütze ein perl-script, welches perl-module benötigt. diese habe ich mit dem script erhalten.
damit das ganze auf meinem pc funktioniert hat, musste ich das 'LWP' verzeichniss in mein locales perl verzeichnis kopieren - hat funktioniert.

nur am webserver will das ganze nicht - da kommt dann eine nachricht wie 'der server lieferte eine unbekannte rückmeldung...' und sowas. ich habe es aber bereits in mein cgi-bin verzeichniss kopiert (laut provider) und in das verzeichniss in dem das programm ausgeführt wird usw. - half alles nichts.

jetzt die frage: kann ich in dem script irgendwie den pfad zu den modulen angeben?
der aufruf der module erfolgt folgendermasen:
eval {
  require 5.004;
  use Exporter();
  use LWP::Parallel::UserAgent qw(:CALLBACK);
  use vars qw(@ISA @EXPORT $VERSION);
  $VERSION = '1.0';

@ISA = qw(LWP::Parallel::UserAgent Exporter);
  @EXPORT = @LWP::Parallel::UserAgent::EXPORT_OK;
};

funtioniert das irgenwie mit 'lib' oder so (hab mal davon gehört - mehr nich)

wäre toll wenn mir jemand von euch helfen könnte.

achja, kennt jemand eine möglichkeit einen link zu prüfen, bevor der user darauf klickt? sprich vorher nachzusehen ob die seite überhaupt vorhanden ist?

  1. Hi,

    ich möchte mich bei allen wirklich entschuldigen!
    ich war ja teilweise (laut stefan) mit ein grund warum das forum geschlossen wurde. da ich diese ganzen diskusionen um das forum selbst, entfacht habe.

    ich glaube nicht, daß in *diesem* Forum irgendwer irgendwen irgendetwas beschuldigt. Hier war mehr als nur einer "Schuld", und wir alle haben dann die Konsequenzen getragen. Wichtig ist nur, daß wir draus gelernt haben... ;-)

    *PS: schreibt mir dazu bitte keine sinnlosen antworten*

    Das Glas kriegst Du, indem Du mit dem Schraubenzieher das Bild von der Wandhebelst und auf den Hängeschrank legst. Dieser fällt dann runter, und in dem Loch dahinter ist es.
    Ach ne, ich sollte ja nicht... sorry :-) *sonunaberschluß*

    ich benütze ein perl-script, welches perl-module benötigt. diese habe ich mit dem script erhalten.

    Üblicherweise (unter Linux) mußt Du Perl-Module installieren. Lade dazu am besten das Modul von CPAN (unter http://www.perl.com) noch mal runter und folge den Anweisungen in der Readme-Datei. Du wirst diverse "make"-Befehle ausführen müssen.

    jetzt die frage: kann ich in dem script irgendwie den pfad zu den modulen angeben?

    Ich glaube, das geht irgendwie über @INC, aber da bin ich mir nicht sicher... mit einer korrekten Installation sollte das aber kein Problem sein!

    achja, kennt jemand eine möglichkeit einen link zu prüfen, bevor der user darauf klickt? sprich vorher nachzusehen ob die seite überhaupt vorhanden ist?

    Wenn die Seite auf Deinem Server liegt ist das kein Problem. Ersetze $link folgendermaßen:

    $link =~ s|^http://deine.domain.de/grundpfad/|/server/pfad/zu/deinem/www-verzeichnis/|;
    if (-e $link) { print "Datei existiert!"; }

    Cheatah

  2. hi!

    nur am webserver will das ganze nicht

    Wäre ja noch schöner, wenn jeder auf dem Server in alle Verzeichnisse schreiben darf.

    funtioniert das irgenwie mit 'lib' oder so (hab mal davon gehört - mehr nich)

    Ja, mit lib. Zum Beispiel so:
    === cut ===
    use lib '/home/username/perl/site_perl/lib';
    use LWP;
    === cut ===

    Normalerweise werden die Module nicht kopiert, sondern installiert mit irgendeinem make-Befehl, der auf einem Linux-System immer vorhanden ist.
    Wenn du nicht Administrator bist, kannst du die Perl-Module aber nur in deinem eigenen Verzeichnis installieren. Dafür benötigst du zuerst die Installationsdateien für die Module, am besten von einem CPAN-Server (http://www.perl.com/CPAN/).
    Die Datei kopierst du in ein Verzeichnis auf dem Server, dann entpackst du sie:
      tar xvfz dateiname.tar.gz
    Dann wechselst du ins Verzeichnis, in das entpackt wurde:
      cd dateiname
    Dann erstellst du das Makefile. Dabei musst du angeben, in welches Verzeichnis installiert wird, hier also dein Userverzeichnis, zum Beispiel:
      perl Makefile.PL PREFIX=/home/dein_benutzer_name/perl
    Dann kannst du installieren:
      make
      make test
      make install
    Anschließend kannst du die Quelldateien, die du vorher entpackt hast, wieder löschen.

    bye, Frank!

    1. Normalerweise werden die Module nicht kopiert, sondern installiert mit irgendeinem make-Befehl, der auf einem Linux-System immer vorhanden ist.

      ......

      vielen dank frank, aber ich muss hier kein 'make' mehr machen :-)
      die module sind fertig als .pm dateien und funktionieren bei allen anderen usern dieses scripts ohne probleme durch alleiniges uploaden.

      ich versuchs mal mit dem lib befehl. danke

      1. hi!

        Normalerweise werden die Module nicht kopiert, sondern installiert mit irgendeinem
        make-Befehl, der auf einem Linux-System immer vorhanden ist.
        vielen dank frank, aber ich muss hier kein 'make' mehr machen :-)
        die module sind fertig als .pm dateien und funktionieren bei allen anderen usern dieses
        scripts ohne probleme durch alleiniges uploaden.

        Es gibt aber Module, die teilweise kompiliert werden müssen und bei denen noch andere Dateien installiert werden.

        bye, Frank