in reply to Consolidating data from lots of different sources

Your data contains

Srv_0A,xxxxxxxxx,,xxxxxxxxxxx Srv_0A,,, Srv_0A,,,xxxxxxxxxxxxxx

Should that be

Srv_0A,xxxxxxxxx,,xxxxxxxxxxx Srv_0A,,, Srv_0A,,xxxxxxxxxxxxxx,

If so,

use strict; use warnings; my %data; while (<DATA>) { s/^\s+//; s/\s+$//; my @fields = split(/\s*,\s*/); my $server = shift(@fields); $data{$server} ||= ['', '', '']; # Merge data. foreach (0..$#fields) { $data{$server}[$_] = $fields[$_] if length $fields[$_]; } } print(join(',', $_, @{$data{$_}}), "\n") foreach keys(%data); __DATA__ Srv_0A,Axxxxxxxx,,Bxxxxxxxxxx Srv_0A,,, Srv_0G,,, Srv_0B,Cxxxxxxxxx,,Dxxxxxxxx Srv_0A,,Exxxxxxxxxxxxx, Srv_0G,Fxxxxxxxxxx,Gxxxxxxxxxxxxx, Srv_0B,,Hxxxxxxxxxxxxx,

If not, how do you merge the two Commission Dates?