#! usr/bin/perl use strict; use warnings; open (NAME, "found.txt") or die; open (DATA, "Array_values.txt") or die "$!\n"; open (OUT, ">Array_fin.txt") or die "$!\n"; my @line = ; my @probe_ID; my @probe_name; my @gene; my $line; my $probe_name; my $i = (0 .. 13005); #The number of genes and probe names (whereas there are 389308 data entries, including header line) while () { my @col = split(/\t/,$_); #split sequence names into gene and probe $probe_name = $col[1]; my $gene = $col[0]; push (@probe_name, $probe_name); push (@gene, $gene); } foreach $line (@line) #take each line of data { my @data = split(/\t/,$line); #extract probe name my $probe_ID = $data[0]; # push (@probe_ID, $probe_ID); if ($probe_ID =~ m/$probe_name[$i]/) #match the current entry with the list of probe names { print OUT "$gene[$i]\t$line\n"; #print the relavant gene name and data } else { print OUT "no match\n"; } } close