I would avoid writing such elaborate sorting subs and use
DBD::RAM. This is the first timer for me, BTW.
This is yet untested tested now:
use DBI;
use SuperSplit;
my $data;
{
local $/ = undef;
$data = <DATA>;
}
$data=~tr/\-/,/;
my $dbh = DBI->connect('DBI:RAM:','usr','pwd',{RaiseError=>1});
$dbh->func({ table_name => 'file',
col_names => 'source,year,month,time,sip,sport,dip,dport,hits,
+acl,mlnum',
data_type => 'CSV',
data_source => $data,
}, 'import' );
my $ar = $dbh->selectall_arrayref(qq[SELECT * FROM file ORDER by spo
+rt asc, time desc ]);
print superjoin(',',"\n", $ar );
__DATA__
Monmouth,2000-05-2000:00:09-04,192.35.75.69,138,192.100.255,66,2,105,1
+234
Jackson,2000-04-2100:00:10-05,192.35.12.03,144,192.67.29,134,8,101,148
+7
Meade,2001-01-0500:00:11-04,213.132.32,175,184.57.62.35,151,12,107,153
+2
Yuma,200-03-1100:00:12-05,210.0.0.0,156,192.78.54.21,156,10,105,1578
Monmouth,200-04-1000:00:10-08,63.0.0.0,125,192.45.67.2,159,16,101,1879
Lewis,2000-03-1200:21:45-32,167.54.80.65,144,192.67.29,134,32,107,1487
Hero,2001-01-0500:00:11-04,211.34.78.93,132,184.57.62.35,151,12,101,15
+32
Jackson,2000-01-0500:00:11-04,193.0.0.195,175,184.57.62.35,151,14,105,
+153
Of course you will have to write your own sorts here, but
that is fairly easy now, just adjust the SQL ORDER string.
HTH,
Jeroen
"We are not alone"(FZ)