$infile = "outfile.txt"; open (INFILE, "$infile"); $out_b = "outfile_b.txt"; open (OUT_B, "+>>$out_b"); while(){ print "here\n"; if ($_ =~ /^(.{1,50})\t{0,50}(.{0,50})\t{0,1}(.{0,50})\t{0,1}(.{0,50})\t{0,1}(.{0,50})\t{0,1}(.{0,50})/){ print "here_B\n"; $gene_id = $1; if ($2 = /.{1,50}/){ (@alternative_ids, $2)}; if ($3 = /.{1,50}/){ (@alternative_ids, $3)}; if ($4 = /.{1,50}/){ (@alternative_ids, $4)}; if ($5 = /.{1,50}/){ (@alternative_ids, $5)}; if ($6 = /.{1,50}/){ (@alternative_ids, $6)}; if ($7 = /.{1,50}/){ (@alternative_ids, $7)}; if ($8 = /.{1,50}/){ (@alternative_ids, $8)}; if ($9 = /.{1,50}/){ (@alternative_ids, $9)}; print @alternative_id; foreach (@alternative_ids){ $alternative_id = $_; print OUT_B "$gene_id\t$alternative_id\n"; } undef @alternative_ids; } }