Michael Schröpl: Kann man STDIN Werte übergeben?

Beitrag lesen

Hi,

Das klingt für mich alles so, als würdest Du mit Gewalt Interprozeß-
kommunikation via HTTP simulieren wollen. Das ist aber nicht der Sinn
von HTTP.
Es geht um Perl über CGI, Sorry das ich Vergessen
habe das zu erwähnen.
Ich will in einem Scipt ein anderes einbinden,

was heißt nun schon wieder "einbinden"?

Gerade hatte ich geglaubt, verstanden zu haben, daß Du
von Skript A einen HTTP-Request an Skript B starten
willst und diesem dann Parameter mitgeben möchtest,
welche B über _seine_ CGI-Schnittstelle lesen kann.

und diesem die Parameter (damit meine ich die mit
Get und Post übergebenen Daten) übergeben die es
bei direktem aufruf auch bekommen würde.

Also doch. Ersetzen "Aufruf" durch "HTTP-Request".
Mit "eval" bist Du bei dieser Aufgabe im völlig
falschen Film.

Da ich auf die Scripts keinen Einfluss habe, muss
ich die normale Http umgebung simulieren,

Dazu hast Du aber nicht die geringste Chance - nicht
mal, wenn Du einen kompletten Webserver nachprogram-
mierst (weil Du zudem auch noch die komplette Web-
server-Konfiguration für B kennen müßtest).

oder hättest du (oder jemand anderes) da eine
andere Idee?

Sende einen HTTP-Request von A nach B. Dafür gibt
es in Perl fertige Module.

Für GET würde LWP::Simple reichen; für POST muß
es etwas mehr sein, beispielsweise LWP::UserAgent.
Beides ist im "lwpcook" beschrieben.

Wie geht das? Ich habe gedacht Pipes wären nur
unter Linux verfügbar und (wie ich leider ebenfalls
vergessen habe zu erwähnen) sollte dieses Script
unter Win und Unix,Linux o.ä. laufen.

Aha - Deine Aufgabenstellung beginnt langsam, Formen
anzunehmen. ;-)

Noch eine Frage: Kann man (oder Frau um korrekt zu
sein ;-)) ein Filehandle (wie es STDOUT ja
eigentlich ist) irgendwie in eine Variable umleiten?

Alles, was Du aus einem filehandle liest, kannst Du
einer Variable zuweisen ... war das Deine Frage?

Ich müsste nähmlich den (mit print erzeugten)Output
abfangen um ihn dann evtl. noch zu verändern.

Das verstehe ich nicht.

Wieso hältst Du nicht einfach Deine Ausgabe zurück,
bis Du weißt, was Du ausgeben willst?

(Liest mal "sprintf", das dürfte Dir weiter helfen.)

Viele Grüße
      Michael