Johannes Lichtenberger: Simple RegExp.-Suche

Beitrag lesen

Nun erscheint 'Can't call method "param" on an undefined value at D:\Server\Apache2\cgi-bin\search.pl line 53'.

Im Prinzip ist alles was das Script nun tut auf den Websiten die übergeben wurden nach einem Ausdruck zu suchen:

if ($query->param()) {
  foreach (my $query->param('websites') =~ /(http\S*)/gi) {          #<- line 53

my $query ist nicht definiert. Mach mal das my davor weg.

Struppi.

Danke, habe das Script aber nochmal etwas umgeschrieben (mittels LWP::UserAgent nun), um Status-Codes zu erhalten.

Dummerweise kommt nun immer:
Error: 400 URL must be absolute

unless ($response->is_success || $response->code == 301 || $response->code == 302) {
      print "<li><a href="$uri">$uri</a> | ".$query->param('suche')." | Error: ".$response->code." ".$response->message."</li>\n";
    }

http://visualgrafyx.com/publications/learn-to-seek/ sollte ja nun wirklich absolut sein ;-)

Insgesamt:

if ($query->param()) {
  foreach ((my $uri = $query->param('websites')) =~ /(http\S*)/gi) {
    my $ua = LWP::UserAgent->new;
    my $response = $ua->get('$uri');
    print "<ul>\n";

unless ($response->is_success || $response->code == 301 || $response->code == 302) {
      print "<li><a href="$uri">$uri</a> | ".$query->param('suche')." | Error: ".$response->code." ".$response->message."</li>\n";
    }
    elsif ($response->content =~ /($query->param('suche'))/i) {
      print "<li><a href="$uri">$uri</a> | ".$1."</li>\n" if $query->param('treffer');
    }
    else {
      print "<li><a href="$uri">$uri</a> | ".$query->param('suche')."</li>\n" if $query->param('ktreffer');
    }

print "</ul>\n";
  }
}

Johannes