my %gene = (); foreach (@gene_score) { $gene{$_->[0]}->{score} = $_->[1]; } foreach (@gssc) { $gene{$_->[0]}->{start} = $_->[1]; $gene{$_->[0]}->{stop} = $_->[2]; $gene{$_->[0]}->{chr} = $_->[3]; } #### %gene = ( gene_name_0 => { score => 'score_0', start => 'start_0', stop => 'stop_0', chr => 'chr_0' }, gene_name_1 => { score => 'score_1', ... );