Problem mit Modul LWP::SIMPLE
Charles
- perl
Hi, ich hab ein Problem mit dem CPAN-Modul LWP::SIMPLE. Vor längerer Zeit hatte ich es schon mal ohne Probleme in einem Script benutzt.
Jetzt tut sich überhaupt nichts. Es läuft ohne explizite 500er-Fehlermeldung, aber offensichtlich greift es überhaupt nicht zu und erwischt keine WWW-Seite. Ausgegeben werden nur die HTML-Angaben <html><body>, aber die print-Ausgabe "$url nicht erwischt" (siehe unten) kommt schon nicht mehr.
Auf dem Server, so habe ich gerade nachgeschaut, ist es installiert. Was kann da schief laufen? (Muss eventuell noch ein anderes Modul eingebunden werden, auf das LWP::SIMPLE zurückgreift? In der Modul-Beschreibung bei CPAN steht davon allerdings nichts.)
Hier der Code:
#!/usr/bin/perl -w
use strict;
use LWP::Simple;
package forumlinks;
use vars qw($url $content);
print "Content-type: text/html\n\n";
print "<html><body>\n";
$url = "http://www.forum-gesundheitspolitik.de";
$content = get("$url");
if (defined $content) {
print "$url <br>\n $content \n";
}
else {
print "$url nicht erwischt";
}
print "</body></html>";
Bin für jede Info dankbar, da ich ich schon seit 3 Stunden hierüber ohne Ergebnis brüte.
Charles
Hallo Charles,
Auf dem Server, so habe ich gerade nachgeschaut, ist es installiert. Was kann da schief laufen? (Muss eventuell noch ein anderes Modul eingebunden werden, auf das LWP::SIMPLE zurückgreift? In der Modul-Beschreibung bei CPAN steht davon allerdings nichts.)
du hättest das Skript einfach mal ausführen können, um zu sehen was für ne Fehlermeldung kommt.
Bei mir kommt:
Undefined subroutine &forumlinks::get called at test.pl line 9.
Der Fehler ist dann schnell gefunden..
#!/usr/bin/perl -w
benutze lieber "use warnings" statt -w
use strict;
use LWP::Simple;
...
$url = "http://www.forum-gesundheitspolitik.de";
$content = get("$url");
$content = LWP::Simple::get($url);
if (defined $content) {
...
print "</body></html>";
ich würde sogar noch etwas mehr verändern:
#!/usr/bin/perl
package forumlinks;
use strict;
use warnings;
use LWP::Simple qw(get);
use CGI;
use CGI::Carp 'fatalsToBrowser';
my $q = new CGI;
print $q->header();
print $q->start_html();
my $url = "http://www.forum-gesundheitspolitik.de";
my $content = get("$url");
if (defined $content) {
print "$url <br>\n $content \n";
} else {
die "unable to recieve $url";
}
print $q->end_html();
Bin für jede Info dankbar, da ich ich schon seit 3 Stunden hierüber ohne Ergebnis brüte.
das glaube ich dir nicht ;)
Gruß,
Benne
Tausend dank, es funzt jetzt!
#!/usr/bin/perl -w
use strict;
use LWP::Simple;
Laß dir mal die Fehler im Browser ausgegeben
use CGI::Carp qw/fatalsToBrowser/;
$content = get("$url");
Die Anführungszeichen sind unnötig.
Ansonsten kann ich nichts erkennen was schief gehen könnte, wenn du wirklich keinen 500er Fehler bekommst.
Struppi.