use warnings; use strict; open (OUTFILE, ">outfile.csv"); open (IN1, "){ chomp; print OUTFILE $_; open (IN2, "){ my @f = split(/,/); if ($counter == $f[0]){ print OUTFILE ",$f[1]\n"; }} close IN2; $counter = $counter + 1; } close IN1; close OUTFILE; #### use warnings; use strict; open my $in2, '<', 'infile2.csv' or die "Cannot open 'infile2.csv' because: $!"; my %data; while ( <$in2> ) { my ( $key, $value ) = split /,/; $data{ $key } = $value; } close $in2; open my $outfile, '>', 'outfile.csv' or die "Cannot open 'StatsCubeR2format.csv' because: $!"; open my $in1, '<' , 'infile1.csv' or die "Cannot open 'infile1.csv' because: $!"; while ( <$in1> ) { chomp; print $outfile "$_"; if ( exists $data{ $. - 1 } ) { print $outfile ",$data{$. - 1}\n"; } else { print $outfile ",field_name\n"; } } close $in1; close $outfile;