Michael Schröpl: Ein Einsatzfall

Beitrag lesen

Wie kann ich per CGI eine HTML Datei von einem anderen server einlesen?
mit dem Modul LWP::Simple kannst Du das sehr einfach.

In der Tat - eine tolle Sache.
Wir hatten heute einen wundervollen Anwendungsfall dafür: Ein Kunde wollte in den Inhalt einer HTML-Seite des eigenen (von uns aufgestellten) Servers den Inhalt einer fremden Seite eingeblendet haben. Frames schieden auf Kundenwunsch aus, blieb nur noch SSI-EXEC - das wiederum geht aber in Apache nur innerhalb des lokalen URL-Baums, nicht mit Angabe eines fremden Hosts.
Also: Ein kleines CGI-Programm geschrieben, welches die fremde Seite perl LWP::Simple absaugt; dieses Skript beim Kunden installiert und per SSI-EXEC integriert, und fertig war die Laube.

Es gehört zur Standarddistribution und sollte installiert sein - wenn nicht, Provider treten!

Hoppla - das ist aber doch eine ziemlich mutige Aussage.

Zugegeben: In ActivePerl 5.005 für Windows ist es drin.
In Perl 5.004 (Source-Auslieferung) für UNIX aber nicht! (5.005 läßt sich bei mir nicht korrekt installieren - "make test" liefert diverse Fehler.)

Diese ganzen Sondermodule stammen aus dem sogenannten CPAN (Comprehensive Perl Archive Network), welches man unter http://www.perl.com/CPAN/CPAN.html finden kann. Dort werden alle empfohlenen Freeware-Module zu Perl gesammelt und zum Download angeboten.

Um LWP::Simple verwenden zu können, mußte ich nicht weniger als 6 Module installieren:

  • MIME-Base64
  • URI
  • HTML-Parser
  • libnet
  • Digest-MD5
  • libwww-perl (dort ist LWP::Simple drin, aber das Modul ist von den anderen fünf Modulen abbhängig).
    Die Installation ist zwar relativ trivial ("perl Makefile.PL", "make" und "make install"), aber erst mal zu erkennen, was alles fehlt (die Module sind hochgradig voneinander abhängig), das war eine ganz schöne Bastelei.

Gibt es in CPAN irgendwo ein Superpaket aller 'sinnvollen' Erweiterungen?
Oder muß man sich als Administrator die ganzen sinnvollen Module wirklich so mühsam zusammensuchen wie in meinem Fall?