package HTML::pageParser;
use strict;
use warnings;
use Carp;
use vars qw($VERSION);
# this creates our class/object
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my ($sysLoc) = my @orig_args = @_;
my $self = {};
$self->{tokens} = undef;
$self->{sysLoc} = $sysLoc;
bless ($self, $class);
return $self;
}
# this file reads a text file and loads the contents into an array
sub loadFile($)
{
my $self = shift;
my ($filename) = @_;
if(open this, $filename)
{
while ($line = )
{ $body .= $line; }
close this;
} else die("cannot open the file:" $filename);
return($body);
}
# this function parses through the contents of a scalar variable and does a search/replace on the tokens
# the only thing left to figure out in this function is to eliminate the duplicate matches found
# before doing the replacing of any tokens. This will be a minor decrease in processor resources.
sub parseData($)
{
my $self = shift;
my ($data) = @_;
my %tokens = %$self->{tokens};
foreach my $match($data =~ /\%(\S+?)\%/g)
{
if($tokens{$match})
{ $data =~ s/%$match%/$tokens{$match}/g; }
else
{ $data =~ s/%$match%//g; }
}
return($data);
}
# this is a quick way to both load a flat file and parse it's contents for tokens.
sub loadAndParse($)
{
my $self = shift;
my ($filename) = @_;
$data = loadFile($filename);
$body = parseData($data);
return($body);
}
1; # so the require or use succeeds