sub _extract_images { my $self = shift; $self->{images} = []; if ( defined $self->{content} ) { my $parser = HTML::TokeParser->new(\$self->{content}); while ( my $token = $parser->get_tag( keys %image_tags ) ) { my $image = $self->_image_from_token( $token, $parser ); push( @{$self->{images}}, $image ) if $image; } # while } return; } sub _image_from_token { my $self = shift; my $token = shift; my $parser = shift; my $tag = $token->[0]; my $attrs = $token->[1]; if ( $tag eq 'input' ) { my $type = $attrs->{type} or return; return unless $type eq 'image'; } require WWW::Mechanize::Image; return WWW::Mechanize::Image->new({ tag => $tag, base => $self->base, url => $attrs->{src}, name => $attrs->{name}, height => $attrs->{height}, width => $attrs->{width}, alt => $attrs->{alt}, id => $attrs->{id}, }); }