#!/usr/bin/perl -T use strict; use warnings; use CGI; use LWP::Simple; use HTML::Template; use HTML::TokeParser::Simple; my $query = CGI->new; my $template = HTML::Template->new( filehandle => \*DATA, associate => $query, ); my %student = get_students(); my $student = $query->param('student') || ''; if (exists $student{$student}) { $template->param(%{$student{$student}}); } elsif ($query->param('go')) { $template->param(error=>"$student does not exist. Try again.",); } print $query->header, $template->output; sub get_students { my $html = get('http://jamiel.jalme.com/finalgrades.html'); my $parser = HTML::TokeParser::Simple->new(\$html); my (%student,$token,$name,$grade); while ($token = $parser->get_token) { if ($token->is_start_tag('b')) { $token = $parser->get_token; $name = $token->as_is; } elsif ($token->is_end_tag('b')) { $token = $parser->get_token; ($grade) = $token->as_is =~ /(\d+)$/; $student{$name} = { full_name => $name, grade => $grade, first_name => (split /\s+/, $name)[0], } } } return %student; } __DATA__ Student Grade Lookup

Enter name of student:
CONGRATULATIONS TO THE PARTICIPANT <tmpl_var first_name>

Has just gotteh a "" as a grade for this Seminar. Congratulations!!!