Maik: Übergabe von Formulardaten

Hi Leute,
ich blicke nicht ganz wie das Übergeben von Daten von einem Perl-Script zu einen anderen gehen soll.
Es soll irgendwie mit LWP::UserAgent gehen, aber ich komme echt nicht weiter.

Wäre echt nett wenn mir jemand ein Beispiel posten/mailen könnt, am besten natürlich noch ein bisschen dokumentiert.
Oder mir ein paar Links sagt, wo es für "Dummies" steht, denn mit www.cpan.org oder perldoc komm ich einfach nicht weiter.

thx
Maik

  1. Hallo,

    Ich hab' mir mal auch das alte Posting von Dir durchgesehen. Dabei ist mir nicht klar geworden, wie Du das Perlscript aufrufen willst.
    Da gibt es zum einen die ev. Möglichkeit, daß Du das lokal aufrufen willst. das geht beispielsweise mit

    $response = qw/perlscript name=value&name2=value2/;

    wenn das aufgerufene Script CGI.pm verwendet, dann solltest Du in Response die Ausgabe des Scripts inklusive HTTP-Header erhalten.

    Solltest Du aber ein Script auf einem anderen Rechner aufrufen wollen, so ist LWP::UserAgent bzw. LWP::Simple sicherlich die beste Wahl.

    LWP::Simple:

    use LWP::Simple;
    $doc = get 'http://www.wo.auch.immer/pfad/zum/script.cgi?name=value&name2=value2';

    print $doc;

    War das schwierig?

    LWP::UserAgent:

    use LWP::UserAgent;
    $ua = LWP::UserAgent->new;
    $req = HTTP::Request->new(GET => 'http://www.wo.auch.immer/pfad/zum/script.cgi?name=value&name2=value2');

    Request senden

    $res = $ua->request($req);

    Ergebnis überprüfen

    if ($res->is_success)
      {
      print $res->content; # alles ist in Ordnung
      }
    else
      {
      print "Error: " . $res->status_line . "\n"; # uups, da hat wohl was nicht funktioniert
      }

    Das ist zwar etwas komplizierter als mit LWP::Simple, aber nach Studium der beiliegenden Dokuz wirst Du feststellen, daß dieses Modul nicht nur die Voraussetzung für das andere ist, sondern auch wesentlich flexibler.
    Und wirklich schwierig ist es auch IMHO nicht.
    Anmerkung, alle diese Beispiele finden sich in den entsprechenden Dokumentationen der Module.

    Grundsätzlich solltest Du IMHO an Deiner Art des Lernens arbeiten.
    Vielleicht ist es hilfreich, wenn Du Dir erstens lokal (ich denku Du arbeitest unter Windows *g*) Perl von Activestate installierst. Neben dem allgegenwärtigen 'perldoc' wird auch gleich eine wirklich gute HTML-Version der Dokumentation installiert.
    Mithilfe des 'Programmes' (In wirklichkeit ebenfalls ein Perlscript) ppm kannst Du dann wirklich einfach fehlende Module nachinstallieren, wie sagt Dir die Doku.
    Die Dokumentationen dieser nachinstallierten Module werden in der HTML-Version automatisch eingepflegt, so daß sie auch hier verfügbar sind.

    Dringend empfehlen würde ich die Investition in ein gutes Buch über Perl, beispielsweise 'Programmieren in Perl' aus dem O'Reilly-Verlag. Das gibst jetzt auch recht aktuell (für Perl 5.6) in deutscher Version, und ist u.a. vom Schöpfer dieser Sprache selbst. Das kostet zwar an die 100 DM, wobei dieses Geld IMHO äußerst gut angelegt ist.
    Ein Buch hat den Vorteil, auch fernab vom Rechner wertvoll zu sein. (Es soll ja Leute geben, die das dann am Strand lesen *g*)

    Grüße
      Klaus

    1. Hallo,

      Ich hab' mir mal auch das alte Posting von Dir durchgesehen. Dabei ist mir nicht klar geworden, wie Du das Perlscript aufrufen willst.
      Da gibt es zum einen die ev. Möglichkeit, daß Du das lokal aufrufen willst. das geht beispielsweise mit

      $response = qw/perlscript name=value&name2=value2/;

      wenn das aufgerufene Script CGI.pm verwendet, dann solltest Du in Response die Ausgabe des Scripts inklusive HTTP-Header erhalten.

      Solltest Du aber ein Script auf einem anderen Rechner aufrufen wollen, so ist LWP::UserAgent bzw. LWP::Simple sicherlich die beste Wahl.

      LWP::Simple:

      use LWP::Simple;
      $doc = get 'http://www.wo.auch.immer/pfad/zum/script.cgi?name=value&name2=value2';

      print $doc;

      War das schwierig?

      LWP::UserAgent:

      use LWP::UserAgent;
      $ua = LWP::UserAgent->new;
      $req = HTTP::Request->new(GET => 'http://www.wo.auch.immer/pfad/zum/script.cgi?name=value&name2=value2');

      Request senden

      $res = $ua->request($req);

      Ergebnis überprüfen

      if ($res->is_success)
        {
        print $res->content; # alles ist in Ordnung
        }
      else
        {
        print "Error: " . $res->status_line . "\n"; # uups, da hat wohl was nicht funktioniert
        }

      Das ist zwar etwas komplizierter als mit LWP::Simple, aber nach Studium der beiliegenden Dokuz wirst Du feststellen, daß dieses Modul nicht nur die Voraussetzung für das andere ist, sondern auch wesentlich flexibler.
      Und wirklich schwierig ist es auch IMHO nicht.
      Anmerkung, alle diese Beispiele finden sich in den entsprechenden Dokumentationen der Module.

      Grundsätzlich solltest Du IMHO an Deiner Art des Lernens arbeiten.
      Vielleicht ist es hilfreich, wenn Du Dir erstens lokal (ich denku Du arbeitest unter Windows *g*) Perl von Activestate installierst. Neben dem allgegenwärtigen 'perldoc' wird auch gleich eine wirklich gute HTML-Version der Dokumentation installiert.
      Mithilfe des 'Programmes' (In wirklichkeit ebenfalls ein Perlscript) ppm kannst Du dann wirklich einfach fehlende Module nachinstallieren, wie sagt Dir die Doku.
      Die Dokumentationen dieser nachinstallierten Module werden in der HTML-Version automatisch eingepflegt, so daß sie auch hier verfügbar sind.

      Dringend empfehlen würde ich die Investition in ein gutes Buch über Perl, beispielsweise 'Programmieren in Perl' aus dem O'Reilly-Verlag. Das gibst jetzt auch recht aktuell (für Perl 5.6) in deutscher Version, und ist u.a. vom Schöpfer dieser Sprache selbst. Das kostet zwar an die 100 DM, wobei dieses Geld IMHO äußerst gut angelegt ist.
      Ein Buch hat den Vorteil, auch fernab vom Rechner wertvoll zu sein. (Es soll ja Leute geben, die das dann am Strand lesen *g*)

      Grüße
        Klaus

      Danke für deine Hilfe.
      Zu meinem Script:
      Ich habe ein Script lokal (noch NT später Sun).
      Dieses Script soll ein anderes Script auf einem fremden Rechner(ich habe keinen Einfluss auf dieses Script) aufrufen und diesem Script Daten übermitteln (z.B. 'München').
      Dann generiert dieses fremde Script eine html-Site und gibt die zurück, welche ich dann mit den zurückgelieferten Daten etwas ummodeliere und wieder ausgebe.

      Zu deinen Tipps:
      Erstmal Danke.
      Ich hab Perl auf meinem Rechner installiert(jedoch kannte ich die html-Doku nicht *g*)
      Ich habe auch O´Reilly-Bücher und zwar die Einführung und das Cookbook. Aber ich arbeite seit ca. 3 WOchen mit Perl und hab mich selbst eingearbeitet,
      aber leider fehlen mir trotz Buch und cpan.org manchmal irgendwelche erklärenden Worte. Ich denke, dass mit meinen Perl-Kenntnissen, diese Aufgabe eine
      ziemlich Herausforderung ist und ich mich bis jetzt ziemlich gut schlage.
      Sorry, aber ich hatte nach deinen Tipps irgendwie das Gefühl meine Leistungen verteidigen zu müssen.

      cu
      Maik

      1. Hallo,

        Ich hab Perl auf meinem Rechner installiert(jedoch kannte ich die html-Doku nicht *g*)

        Tja, oft weiß man gar nicht, welche Schätze in den Abgründen der lokal eingerichteten Massenspeicher so schlummern;-)

        Ich habe auch O´Reilly-Bücher und zwar die Einführung und das Cookbook.

        Da steht ja jede Menge verd... gutes Zeuchs drin.
        BTW.: Im Cookbook wird dein Problem im Kapitel 20, im speziellen Rezept 20.2 recht gut erläutert.

        Aber ich arbeite seit ca. 3 WOchen mit Perl und hab mich selbst eingearbeitet,

        Dann solltest Du es nicht zu schnell angehen. Nichts ist frustrierender als zu komplexe Aufgabenstellungen, an denen man nur scheitern kann.

        Sorry, aber ich hatte nach deinen Tipps irgendwie das Gefühl meine Leistungen verteidigen zu müssen.

        Ich wollte sicherlich nicht, daß Du Dich angegriffen fühlst.

        Grüße
          Klaus

        1. Ich habe auch O´Reilly-Bücher und zwar die Einführung und das Cookbook.
          Da steht ja jede Menge verd... gutes Zeuchs drin.
          BTW.: Im Cookbook wird dein Problem im Kapitel 20, im speziellen Rezept 20.2 recht gut erläutert.

          ich weiss s.751, aber irgendwie wurde ich nicht schlau daraus aber langsam wird schon ;-)

          Aber ich arbeite seit ca. 3 WOchen mit Perl und hab mich selbst eingearbeitet,
          Dann solltest Du es nicht zu schnell angehen. Nichts ist frustrierender als zu komplexe Aufgabenstellungen, an denen man nur scheitern kann.

          Geb ich dir völlig recht, aber man kann sich das nicht immer aussuchend :(

          Sorry, aber ich hatte nach deinen Tipps irgendwie das Gefühl meine Leistungen verteidigen zu müssen.
          Ich wollte sicherlich nicht, daß Du Dich angegriffen fühlst.

          Kein Problem, war bloß ein wenig iritiert.

          cu (wahrscheinlich schon bald *g*)
          Maik