file 1: AOKX 495408, L, 04/02/13, SWCOMP AOKX 495408, L, 04/20/13, SWCOMP BLHX 102, L, 04/01/13, WILDCOM CRDX 7067, L, 04/05/13, TYCO WW 9030, L, 04/02/13, HALLI file2: AOKX 495408, L, 04/15/13, SWCOMP BLHX 102, L, 04/03/13, WILDCOM BLHX 102, L, 04/30/13, WILDCOM CRDX 7067, L, 04/20/13, TYCO WW 9030, L, 04/30/13, HALLI output (what it needs to look like) $key $le $date $rdate $company or $rcompany AOKX 495408 L 04/02/13 04/15/2013 SWCOMP AOKX 495408 L 04/20/13 SWCOMP BLHX 102 L 04/01/13 04/03/2013 WILDCOM BLHX 102 L 04/30/2013 WILDCOM CRDX 7067 L 04/05/13 04/20/2013 TYCO WW 9030 L 04/02/13 04/30/13 HALLI #!/usr/bin/perl # use strict; use warnings; open FILE1, "<", "out1.txt" or die "$!\n"; my %hash; while ( ) { chomp $_; my ( $key, $le, $date, $company ) = split ',', $_; $hash{$key} = [$le, $date, $company]; # print "$key $date\n"; } close FILE1; open FILE2, "<", "out2.txt" or die "$!\n"; open OUTFILE, ">", "final.txt" or die "$!\n"; while () { my ( $rkey, $rle, $rdate, $rcompany ) = split ',', $_; $hash{$rkey} = [$rle, $rdate, $rcompany]; # print OUTFILE "\n"; #to write out once figure out how to combine } close FILE2; close OUTFILE;