File1: CLS_S3_Contig2721-139_168 CLS_S3_Contig2722-375_390 CLS_S3_Contig2725-323_362 CLS_S3_Contig2725-455_480 CLS_S3_Contig2728-117_144 CLS_S3_Contig2728-437_472 CLS_S3_Contig2729-119_130 CLS_S3_Contig2729-163_220 CLS_S3_Contig2730-181_202 CLS_S3_Contig2730-361_384 CLS_S3_Contig2731-824_843 CLS_S3_Contig2731-1150_1201 CLS_S3_Contig2735-571_636 CLS_S3_Contig2735-677_710 CLS_S3_Contig2735-775_810 . . . #### File2 CLS_S3_Contig2721-142_169 CLS_S3_Contig6525-509_514 CLS_S3_Contig6525-493_502 CLS_S3_Contig6525-503_508 CLS_S3_Contig2977-365_376 CLS_S3_Contig2977-77_82 CLS_S3_Contig2977-83_90 CLS_S3_Contig4978-271_274 CLS_S3_Contig4978-385_388 CLS_S3_Contig2730-365_389 . . . #### Output: Genename(file1) start end ** Genename(file2) start end CLS_S3_Contig2721 139 168 ** CLS_S3_Contig2721 142 169 CLS_S3_Contig2730 361 384 ** CLS_S3_Contig2730 365 389 . . #### while(){ chomp; my @id = split /\t/; if ($id[0] =~ /(.+?)\-(\d+?)_(\d+)/) { my @line_map = ("$1", $2, $3); push @file_map, [@line_map]; } } close(INPUT1); while(){ chomp; my @map_id = split /\t/; if ($tg_id[0] =~ /(.+?)\-(\d+?)_(\d+)/) { my @tg_id = ("$1", $2, $3); push @file_tg, [@tg_id]; } } if (($from_tg == $from_map) && ($to_tg == $to_map)){ print join("\t",$two_geno_id, $from_map,$to_map,"<-Mapside**TGside->",$two_geno_id, $from_tg, $to_tg, $from_map_tg_range, $to_map_tg_range),"\n"; $lines_1++; } elsif (($from_tg < $to_map) && ($from_tg > $from_map)){ print join("\t",$two_geno_id, $from_map,$to_map,"<-Mapside**TGside->",$two_geno_id, $from_tg, $to_tg, $from_map_tg_range, $to_map_tg_range),"\n"; $lines_9++; }