my %data; open my $FH2, '<', '/tmp/fileread' or die "unable to open input file: $!"; while(<$FH2>) { my @cols = split(/,/); $data{join(':',@cols[1,2])} = $cols[0]; } close($FH2); #### open my $FH6, '>', '/tmp/tst.txt' or die "unable to open output file: $!"; foreach my $key ( sort keys %data ) { my @keys = split(/:/,$key); print $FH6 join(',',$data{$key},@keys) . "\n"; } close ( $FH6 );