use strict; use warnings; use Tie::File; use Data::Dumper; use HTML::Template; # part 1: get the last ten lines and store in a 2-D array my @record; tie @record, 'Tie::File', 'record.txt' or die $!; my @last10 = map [split "\t"], @record[map -$_,1..10]; #print STDERR Dumper \@last10; # part 2: create a list of hashes (LoH) for HTML::Template my %hash; my @headers = qw(date amount action total); my @loop = map { @hash{@headers} = @$_[1..@$_]; # exclude timestamp $_ = {%hash} } sort {$a->[0] <=> $b->[0]} @last10; # sort by timestamp #print STDERR Dumper \@loop; # part 3: shove data through template my $tmpl = HTML::Template->new(filehandle => \*DATA); $tmpl->param(member => \@loop); print $tmpl->output; __DATA__
Date Amount Action Total