my @cols = split(/[,\s]+/); my %row; $row{quarantined_id} = pop @cols; for my $key ( qw( month day time category sender ) ) { $row{$key} = shift @cols; } $row{recipients} = \@cols; push @{$data{rows}}, \%row; ... [% FOR row=rows %]
##
#!/usr/bin/perl
use CGI ':standard';
use strict;
use warnings;
use CGI::Carp 'fatalsToBrowser'; # use only for testing
use Template;
my $cgi = new CGI;
$cgi->header( -charset => 'utf-8' );
$ENV{"PATH"} = "/usr/sbin:/usr/bin:/sbin:/bin";
my %data;
while() {
chomp;
my @cols = split(/[,\s]+/);
my %row;
$row{quarantined_id} = pop @cols;
for my $key ( qw( month day time category sender ) )
{
$row{$key} = shift @cols;
}
$row{recipients} = \@cols;
push @{$data{rows}}, \%row;
}
close FILE;
my $tt = new Template;
my $template = q(
PM 1215287
Time
Category
Sender
Recipients
Quarantined-ID
[% FOR row=rows %]
[% row.month %] [% row.day %] [% row.time %]
[% row.category %]
[% row.sender %]
[% FOR recipient=row.recipients %][% recipient %]
[% END %]
[% row.quarantined_id %]
[% END %]
);
$tt->process( \$template, \%data ) or die $tt->error;
__DATA__
May 3 15:58:17 SPAM sender@domain.com peter.w@recipient.com spam-Lub_LynRmcvj.gz
May 3 15:58:24 SPAM sender@domain1.com coev074@recipient1.com spam-gSCAdAuMpiD0.gz
May 3 15:59:27 BANNED sender@domain2.com nadia.meli@grecipient2.com banned-BpF8aM7FM48B
May 3 16:00:29 SPAM sender@domain.com sascha_ste@recipient.com spam-6fFrrzUjgvug.gz
May 3 16:01:48 INFECTED sender@domain3.com philipp_me@recipient.com virus-SZLvi-VO4IIv
May 4 16:02:28 SPAM sender@domain.com caro.grill@recipient3.com spam-saYzvikxOfVL.gz
May 4 16:02:45 SPAM sender@domain.com pellitter@recipient.com spam-8K649OHNlRQ2.gz
May 4 16:03:14 SPAM sender@domain1.com anton.d@recipient.com spam-3rpUGn3IcDnG.gz
May 5 10:39:42 SPAM sender@domain1.com amil@recipient.com , dab@recipient.com , jay@recipient.com , sa@recipient.com , wid@recipient.com spam-Nnlc4bqiNeQD.gz
May 5 11:00:41 SPAM sender@domain.com amil@recipient.com , duminda@recipient.com , samindak@recipient.com , vajirak@recipient.com spam-gjWpzbXc8o1q.gz
May 6 01:07:04 SPAM sender@domain1.com amil@recipient.com , samindak@recipient.com spam-x-vwwUP5yfqJ.gz
May 7 12:54:26 SPAM sender@domian.com amil@recipient.com spam-o6LPjfCnz211.gz