#!/usr/bin/perl -T use strict; use warnings; use Carp; use HTML::Template; open my $file, "<", 'file.txt'; while (<$file>) { chomp; my($fn,$ln) = split /\t+/, $_ or carp "Row unreadable.\n"; push @loop_data, { firstname => $fn, lastname => $ln }; } my $template = HTML::Template->new(filename => 'template.tmpl'); print "Content-type: text/html\n\n"; $template->param(printlist => \@loop_data); print $template->output;