Yet another look at it...
#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
use HTML::Parser;
# 'print' URL to save a smidge of bandwidth
my $url = "http://perlmonks.org/?displaytype=print;node_id=31832";
if (my $page = get($url)) {
my $parser = HTML::Parser->new( api_version => 3 );
$parser->handler( start => sub {
return if shift ne 'title';
my $self = shift;
$self->handler( text => sub {
my $title = shift;
# Only ready for 4-function math with integers
if ($title =~ m#((\d+) (\+) (\d+))#) {
print "$1 = ", eval("$2 $3 $4"), "\n";
}
}, 'dtext'
);
$self->handler( end => sub {
shift->eof if shift eq 'title' ;
}, 'tagname,self'
);
},
'tagname,self'
);
$parser->parse($page);
}
else {
print "Unable to fetch '$url' for some reason.\n";
}
I chose to leave the database layer out of it this time.