#!/usr/bin/perl package MyParser; use HTML::Parser; use vars qw(@ISA); use strict; @ISA = qw(HTML::Parser); sub start { my($self, $tag, $attr, $attrseq, $origtext) = @_; if ($tag eq 'img') { if ($attr->{src} =~ /\/comics\/[^\/]*\.gif/) { $self->{imageurl} = $attr->{src} } } } #------------------------------------------------------------------------------ package main; use CGI; use LWP::UserAgent; use HTTP::Request; use strict; my $ua = new LWP::UserAgent; my $req = new HTTP::Request(GET => 'http://www.sluggy.com/'); my $p = new MyParser; my $res = $ua->request($req, sub { $p->parse(@_) }); die "ERROR: Unable to find image url!\n" unless $p->{imageurl}; $req = new HTTP::Request(GET => "http://www.sluggy.com$p->{imageurl}"); open(XV, "|xv -") || die "ERROR: Unable to run xv: $!\n"; $res = $ua->request($req, sub { syswrite XV, $_[0], length($_[0]) }); close(XV); 1;