My code: #!/usr/bin/perl use strict; use warnings; # Open file1 to read open my $input_file1, '<', "rmsd1.xvg" or die qq{Failed to open "rmsd1.xvg" for writing: $!}; # Open file2 to read open my $input_file2, '<', "rmsd2.xvg" or die qq{Failed to open "rmsd2.xvg" for writing: $!}; # Open new file to write open my $out_file, '>', "out_file.xvg" or die qq{Failed to open "out_file.xvg" for writing: $!}; while(<$input_file1>) { next if /(^\s*$)|(^#)|(^@)/; my @columns1 = split; print $out_file join("\t", $columns1[0],$columns1[1], "\n"); } while(<$input_file2>) { next if /(^\s*$)|(^#)|(^@)/; my @columns2 = split; print $out_file join("\t", $columns2[1]), "\n"; } close($input_file1); close($input_file2); close($out_file);