Hi Andy,

This little script:

   use WWW::Mechanize;

   my $mech = WWW::Mechanize->new();
   $mech->get ( "http://news.google.com"; );
   my @tImages = $mech->find_all_images( url_regex => qr/imgurl=/ );

Produces the following output:
   Use of uninitialized value in pattern match (m//) at .../WWW/Mechanize.pm 
line 1053.
   Use of uninitialized value in pattern match (m//) at .../WWW/Mechanize.pm 
line 1053.
   Use of uninitialized value in pattern match (m//) at .../WWW/Mechanize.pm 
line 1053.
   ...
This patch to v1.30 fixes the problem:

--- Mechanize.pm-1.30   2007-06-16 22:42:27.000000000 +0200
+++ Mechanize.pm        2007-06-16 22:59:21.000000000 +0200
@@ -1049,10 +1049,11 @@
    # No conditions, anything matches
    return 1 unless keys %$p;

-    return if defined $p->{url}           && !($image->url eq $p->{url} );
-    return if defined $p->{url_regex}     && !($image->url =~ $p->{url_regex} 
);
-    return if defined $p->{url_abs}       && !($image->url_abs eq 
$p->{url_abs} );
-    return if defined $p->{url_abs_regex} && !($image->url_abs =~ 
$p->{url_abs_regex} );
+    return if defined $p->{url}           && !($image->url  && $image->url eq 
$p->{url} );                     #[1]
+    return if defined $p->{url_regex}     && !($image->url  && $image->url =~ 
$p->{url_regex} );
+    return if defined $p->{url_abs}       && !($image->url_abs  && 
$image->url_abs eq $p->{url_abs} );
+    return if defined $p->{url_abs_regex} && !($image->url_abs_regex  && 
$image->url_abs =~ $p->{url_abs_regex} );
+
    return if defined $p->{alt}           && !(defined($image->alt) && $image->alt 
eq $p->{alt} );
    return if defined $p->{alt_regex}     && !(defined($image->alt) && $image->alt 
=~ $p->{alt_regex} );
    return if defined $p->{tag}           && !($image->tag && $image->tag eq 
$p->{tag} );


I'm not sure if all 4 lines really need the change - the second line would fix my problem - but I put them in to be safe :-)

Cheers,

Peter

Reply via email to