Is it just me, or should this response have been one of the first, rather than the sixth? I mean, go HTML::TableContentParser, HTML::TokeParser, HTML::TreeBuilder, Template::Extract, and all the other modules --- but seriously, as a first go ... ?
# Assuming the page contents are in $_
($jobname) = m|<span class="jobname">\s*(.*?)\s*</span>|s;
($jobserial) = m|<span class="jobserial">\s*\((.*?)\)\s*</span>|s;
($offices) = m|<span name="offices">\s*(.*?)\s*</span>|s;
($description) = m|<blockquote>\s*(.*?)\s*</blockquote>|s;
Please excuse my surprise.