push (@sort ,"@split[2]\t@split[1]\t@split[3]\t@split[0]\t@split[4]"); #### push (@sort ,"$split[2]\t$split[1]\t$split[3]\t$split[0]\t$split[4]"); #### push @sort, join "\t", @split[1, 2, 3, 4, 0]; #### use strict; use warnings; my $data = <) { my ($date, $time, $endpoint, $kbid, $id, $title) = /(\S+)\s+ (\S+)\s+ (\S+)\s+ (\S+)\s+ (\w+-\d+\s+)? (.*)/x; $id ||= ''; $entries{$kbid} = { date => $date, time => $time, endpoint => $endpoint, id => $id, kbid => $kbid, title => $title, }; } close $inFile; print join ("\t", @{$_}{qw(id kbid title endpoint date)}), "\n" for sort {$a->{id} cmp $b->{id} or $a->{kbid} <=> $b->{kbid}} values %entries; #### 953432 Update for Microsoft Office Outlook 2003 (KB953432) ABCDEF 2009-01-08 956391 Cumulative Security Update for ActiveX Killbits for Windows 2000 (KB956391) ABCDEF 2009-01-08 957832 Update for Microsoft Office Outlook 2003 Junk Email Filter (KB957832) ABCDEF 2009-01-08 MS08-011 943973 Security Update for Microsoft Works Suite 2005 (KB943973) ABCDEF 2009-01-08 MS08-051 954038 Security Update for 2007 Microsoft Office System (KB954038) ABCDEF 2009-01-08 MS08-052 954326 Security Update for the 2007 Microsoft Office System (KB954326) ABCDEF 2009-01-08 MS08-055 951944 Security Update for the 2007 Microsoft Office System (KB951944) ABCDEF 2009-01-08 MS08-072 956828 Security Update for the 2007 Microsoft Office System (KB956828) ABCDEF 2009-01-08 MS08-074 958439 Security Update for the 2007 Microsoft Office System (KB958439) ABCDEF 2009-01-08