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