#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; my %relative; while (<>) { my ($close_relative, $of_interest) = /(.*)\((.*)\)/ or next; next if $close_relative eq $of_interest; undef $relative{$of_interest}{$close_relative}; } for my $gene (sort keys %relative) { say join ' : ', (keys %{ $relative{$gene} })[0], $gene; } #### Micmi1_478558 => { Micmi1_311120 => undef }, Thiar1_121068 => { Thite2_36710 => undef, Chagl1_10753 => undef, Spoth2_41043 => undef, Myche1_767736 => undef, } ... #### ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,